zoukankan      html  css  js  c++  java
  • 【SDOI2012】 Longgue的问题

    【题目链接】

              点击打开链接

    【算法】

               gcd(i,n)是n的约数

               不妨设gcd(i,n) = d

               考虑枚举d和gcd(i,n) = d有多少个

               gcd(i,n) = d

               gcd(i/d,n/d) = 1

               因为i<=n,所以i/d<=n/d

               因此满足gcd(i,n) = d一共有phi(n/d)个

    【代码】

              

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll i,n,ans;
    
    template <typename T> inline void read(T &x) {
            ll f = 1; x = 0;
            char c = getchar();
            for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
            for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + c - '0';
            x *= f;
    }
    template <typename T> inline void write(T x) {
        if (x < 0) { putchar('-'); x = -x; }
        if (x > 9) write(x/10);
        putchar(x%10+'0');
    }
    template <typename T> inline void writeln(T x) {
        write(x);
        puts("");
    }
    
    ll phi(ll x) {
            ll i,ret=x;
            for (i = 2; i <= sqrt(x); i++) {
                    if (x % i == 0) {
                            while (x % i == 0) x /= i;
                            ret = ret / i * (i - 1);
                    }
            }    
            if (x > 1) ret = ret / x * (x - 1);
            return ret; 
    } 
    
    int main() {
            
            read(n);
            for (i = 1; i <= sqrt(n); i++) {
                        if (n % i == 0) {
                                ans += phi(n/i) * i;
                                if (i * i != n) ans += phi(i) * n / i;
                        }
            }
            
            writeln(ans);
            
            return 0;
        
    }
  • 相关阅读:
    golang-grpc-Unimplemented-desc
    redis使用get key中文变成十六进制编码
    golang-generate-1pixel-image
    telnet-redis-quit
    redis hset hmset过期时间
    cookie mapping 原理理解
    excel 表格粘贴到word 显示不完整
    golang-test-tool-gotests
    go build Multiple main.go file
    golang-build-error
  • 原文地址:https://www.cnblogs.com/evenbao/p/9196398.html
Copyright © 2011-2022 走看看