题目链接:http://poj.org/problem?id=2407
欧拉函数
已知n,求phi(n)
贴代码
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int main(){
freopen("2407.in","r",stdin);
freopen("2407.out","w",stdout);
ll n,ans;
scanf("%I64d",&n);
while (n!=0){
ans=n;
for (ll i=2;i*i<=n;i++){
if (n%i==0){
ans=ans/i*(i-1);
while(n%i==0)n/=i;
}
}
if (n>1)ans=ans/n*(n-1);
printf("%I64d\n",ans);
scanf("%I64d",&n);
}
return 0;
}
【写的有漏洞的,欢迎路过大神吐槽】
2017/07/07 19:05:30
Ending.