poj 2407 Relatives(欧拉函数模板)

来源:互联网 发布:恢复文件软件 免费版 编辑:程序博客网 时间:2024/06/13 04:32
Relatives
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12496 Accepted: 6087

Description

Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that a = xy and b = xz.

Input

There are several test cases. For each test case, standard input contains a line with n <= 1,000,000,000. A line containing 0 follows the last case.

Output

For each test case there should be single line of output answering the question posed above.

Sample Input

7120

Sample Output

6

4

#include<stdio.h>#include<string.h>int n,i;int oular(int n)//欧拉函数模板得出的是小于n的与n互质(就是二个数的最大公约数是1)的个数 {int res=n;int a=n;for(i=2;i*i<=a;i++){if(a%i==0){res=res/i*(i-1);while(a%i==0)a=a/i;}}if(a>1)res=res/a*(a-1);return res;}int main(){int n;while(~scanf("%d",&n),n){printf("%d\n",oular(n));} return 0;}


0 0
原创粉丝点击