您的位置:首页 > 大数据 > 人工智能

[HDU1787]GCD Again(根n求phi)

2016-04-01 14:17 489 查看

题目描述

传送门

有超过108的数据,开LL

题解

根n求phi

运用公式:ϕ(n)=n(1−1p1)(1−1p2)……(1−1pn)

代码

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define LL long long

LL T,n,ans;

inline LL phi(LL x){
LL ans=x;
for (LL i=2;i*i<=x;++i)
if (x%i==0){
ans=ans*(i-1)/i;
while (x%i==0) x/=i;
}
if (x>1) ans=ans*(x-1)/x;
return ans;
}

int main(){
while (~scanf("%lld",&n)){
if (!n) break;
ans=n-1-phi(n);
printf("%lld\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: