欧拉定理

Posted 5210ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧拉定理相关的知识,希望对你有一定的参考价值。

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

7
12
0

Sample Output

6
4

这道题就是要求出n以下与n互质的数的个数,欧拉定理:对于正整数N,代表小于等于N的与N互质的数的个数,记作φ(N).我们正好可以用欧拉定理解决这道题
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

int eural(long n) {
    long ans=1;
    for(int i=2;i*i<=n;i++)
     {
        if(n%i==0)
         {
            n/=i;
            ans*=(i-1);
            while(n%i==0) 
            {
                n/=i;
                ans*=i;
            }
            
        }
        
    }
    if(n>1) 
        ans*=(n-1);
    return ans;
}


int main()
{
    long n;
    while (scanf("%ld", &n)!=EOF&&n)
    {
        printf("%ld
", eural(n));
    }
    return 0;
}

 




以上是关于欧拉定理的主要内容,如果未能解决你的问题,请参考以下文章

学习:数学----欧拉定理与扩展欧拉定理

同余|欧拉定理|费马小定理|扩展欧拉定理|扩展欧几里得算法

解题报告 (十五) 扩展欧拉定理

《夜深人静写算法》数论篇 - (17) 扩展欧拉定理

欧拉定理&扩展欧拉定理(证明)

数论一(欧拉函数+费马小定理)