zoukankan      html  css  js  c++  java
  • 「一本通 6.3 例 2」Hankson 的趣味题

    不用longlong上一题可以证明

    思路一:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=44722;
    int n,a0,a1,b0,b1,ans;
    int p[N+10];
    bool vis[N+10];
    void get_prime(){
        for(int i=2;i<=N;++i){
            if(!vis[i]) p[++p[0]]=i;
            for(int j=1;j<=p[0]&&i*p[j]<=N;++j){
                vis[i*p[j]]=1;
                if(i%p[j]==0) break;
            }
        }
    }
    inline void calc(int x){
        int t1=0,t2=0,t3=0,t4=0;
        while(a0%x==0){ a0/=x; t1++; }
        while(a1%x==0){ a1/=x; t2++; }
        while(b0%x==0){ b0/=x; t3++; }
        while(b1%x==0){ b1/=x; t4++; }
        if(t1<t2||t3>t4||t4<t2) ans=0;
        if(t1>t2&&t4>t3&&t4>t2) ans=0;
        if(t1==t2&&t3==t4) ans*=(t4-t2+1);
        return;
    }
    int main(){
        get_prime();
        scanf("%d",&n);
        while(n--){
            ans=1;
            scanf("%d%d%d%d",&a0,&a1,&b0,&b1);
            for(int i=1;i<=p[0]&&ans;++i)
            if(b1%p[i]==0) calc(p[i]);
            if(b1>1) calc(b1);
            printf("%d
    ",ans);
        }
        return 0;
    } 

    思路二

    #include<bits/stdc++.h>
    using namespace std;
    int n,a0,a1,b0,b1;
    int gcd(int a,int b){
        if(!b) return a;
        return gcd(b,a%b);
    }
    inline bool pd(int i){
        int x=b1/b0*i;
        if(gcd(b0,x)==i&&gcd(a0,x)==a1)return 1;
        return 0;
    }
    int main(){
        scanf("%d",&n);
        while(n--){
            scanf("%d%d%d%d",&a0,&a1,&b0,&b1);
            if(b1%b0){ puts("0"); continue;}
            int m=sqrt(b0),ans=0;
            for(int i=1;i<m;++i)
            if(b0%i==0){
                if(pd(i)) ans++;
                if(pd(b0/i)) ans++; 
            }
            if(pd(m)) ans++;
            if(m*m!=b0&&pd(b0/m)) ans++;
            printf("%d
    ",ans);
        }
        return 0;
    }
        
  • 相关阅读:
    两个栈实现队列
    重建二叉树
    最大的K个数
    堆排序
    Android 强制竖屏
    屏蔽输入框的焦点
    Android 全屏显示的方法(不包含状态栏)
    android 布局之scrollview
    clean之后R文件消失
    thinkphp
  • 原文地址:https://www.cnblogs.com/huihao/p/11746339.html
Copyright © 2011-2022 走看看