1、欧拉函数的应用,水题。
2、理解欧拉函数公式的原理,找到因数后记得筛掉倍数,剩下一项记得乘。
#include<cstdio>
#include<iostream>
using namespace std;
int euler(int n) { //欧拉函数
int res=n;
for(int i=2;i*i<=n;i++) {
if(n%i==0) res=res/i*(i-1);
while(n%i==0) n/=i; //筛掉倍数
}
if(n>1) res=res/n*(n-1); //捡漏的一项
return res;
}
int main()
{
int n;
while(cin>>n && n) {
cout<<n-euler(n)-1<<endl;
}
return 0;
}