欧拉定理
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; }
以上是关于欧拉定理的主要内容,如果未能解决你的问题,请参考以下文章