1617: 互质的数
Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 67 Solved: 27
Submit Status Web Board
Description
题目很简单,笔者懒得描述了;
Input
多组数据,每组包含一个正整数数 n(1<n<1000000000);
Output
不大于n的数中,有多少个与n互质;
Sample Input
2 3 999999990
Sample Output
1 2 235008000
#include<stdio.h> #include<math.h> int hu(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=n/i; } } if(n>1) res=res/n*(n-1); return res; } int main() { int n; while(~scanf("%d",&n)) { printf("%d\n",hu(n)); } }