• Co-prime


    #include<bits/stdc++.h>
    
    const int INF  = 0x3f3f3f3f;
    const int Maxn = 100005;
    
    #define ll long long
    #define mem(x,y) memset(x,y,sizeof(x))
    using namespace std;
    
    int  x[Maxn], num;
    
    int deal(ll N) {  // 对N分解质因数
        int nm = 0;
        for (int i = 2; i * i <= N; i++) {
            if (N && N % i == 0) {
                x[++nm] = i;
                while (N && N % i == 0)
                    N /= i;
            }
        }
        if (N > 1) x[++nm] = N;
    
        return nm;
    }
    ll func(ll n, int m) {   //  计算1-n的数中 和N不互质的个数
        ll ans = 0, flag;
        for (int i = 1; i < (1 << m); i++) { // 用二进制来1,0来表示第几个素因子是否被用
    
            ll tmp = 1, flag = 0;
    
            for (int j = 1; j <= m; j++)  // 判断第几个因子目前被用到  
                if (i & (1 << (j - 1)))
                    ++flag, tmp *= x[j];
    
            if (flag & 1)  // 容斥原理,奇加偶减  
                ans += n / tmp;
            else ans -= n / tmp;
    
        }
        return ans;
    }
    int main() {
        int T, icase = 1;
        ll a, b, N;
        cin >> T;
        while (T--) {
            cin >> a >> b >> N;
            num = deal(N);
            ll ans = (b - a + 1) - (func(b, num) - func(a - 1, num));
            printf("Case #%d: %lld
    ", icase++, ans);
        }
    }
    

      

  • 相关阅读:
    LDA模型了解及相关知识
    GAN
    tensorflow学习6
    GAN的文献综述
    python相关工具
    tensorflow学习5----变量管理
    tensorflow学习5----GAN模型初探
    8月14日至8月20日技术积累
    8月7日至8月13日技术积累
    8月1日到8月6日技术要点
  • 原文地址:https://www.cnblogs.com/NWUACM/p/6906363.html
Copyright © 2020-2023  润新知