gcd的和

#include
#include
#include
#include
using namespace std;
const int maxn=1e5;
typedef long long ll;
int gcd(int a,int b){
    return !b?a:gcd(b,a%b);
}
ll n,ans=0,a[maxn];
int main(){
    scanf("%lld",&n);
    for(int i=n;i>=1;i--){
        //cout<         a[i]=(n/i)*(n/i);
        for(int j=2;;j++){
            if(j*i>n) break;
            else a[i]-=a[j*i];
        }
        ans+=a[i]*i;
    }
    cout<     return 0;
}

你可能感兴趣的:(noip冲刺复习,数论专题)