题意:多少个不大于N的正整数与N互质。
Problem:For given integer N (1<=N<=104) find amount of positive numbers not greater than N that coprime with N. Let us call two positive integers (say, A and B, for example) coprime if (and only if) their greatest common divisor is 1. (i.e. A and B are coprime iff gcd(A,B) = 1)
Solution: Application of gcd.
#include <stdio.h>
#include <iostream>
using namespace std;
int n;
int gcd(int a,int b) {
if (b==0) return a;
return gcd(b,a%b);
}
int main() {
while (~scanf("%d",&n)) {
if (n==1) {
printf("1\n");
continue;
}
int ans = 0;
for (int i=1;i<n;i++)
if (gcd(i,n)==1) ans++;
printf("%d\n",ans);
}
return 0;
}