题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136
思路:欧拉函数求小于或等于n且与n互质的数字的个数
代码:
1 #include2 #include 3 using namespace std; 4 5 int euler(int n){ 6 int cnt = n; 7 for(int i = 2;i <= sqrt(n);i ++){ 8 if(n%i == 0){ 9 cnt = cnt/i*(i-1);10 while(n%i == 0)11 n /= i;12 }13 }14 if(n > 1) cnt = cnt/n*(n-1);15 return cnt;16 }17 int main()18 {19 int n;20 while(cin>>n){21 int res = euler(n);22 cout< <