欧拉公式,求解小于某数且与该数互质的数的个数
来源:互联网 发布:淘宝千人千面 刷单 编辑:程序博客网 时间:2024/05/21 06:35
欧拉函数把n分解质因数=p1^(a1)*p2^(a2)……pn^(an)则小于n且与n互质的数的个数Φ=p1^(a1-1)*(p1-1)*p2^(a2-1)*(p2-1)……pn^(an-1)*(pn-1)
int eular(int n){int ret=1,i;for (i=2;i*i<=n;i++)if (n%i==0){n/=i,ret*=i-1;while (n%i==0)n/=i,ret*=i;}if (n>1)ret*=n-1;return ret;}
#include <stdlib.h>#include<stdio.h>#define N 50000int main(){ int *phi,i,j; char *prime; prime=(char*)malloc((N+1)*sizeof(char)); prime[0]=prime[1]=0; for(i=2;i<=N;i++) prime[i]=1; for(i=2;i*i<=N;i++) { if(prime[i]) { for(j=i*i;j<=N;j+=i) prime[j]=0; } } //这段求出了N内的所有素数 phi=(int*)malloc((N+1)*sizeof(int)); for(i=1;i<=N;i++) phi[i]=i; for(i=2;i<=N;i++) { if(prime[i]) { for(j=i;j<=N;j+=i) phi[j]=phi[j]/i*(i-1); //此处注意先/i再*(i-1),否则范围较大时会溢出 } } int t; scanf("%d",&t); while(t--){ int sum=0; int n; scanf("%d",&n); for(i=1;i<=n;i++){ sum+=phi[i]; } printf("%d\n",sum-1); } return 0;}
- 欧拉公式,求解小于某数且与该数互质的数的个数
- 欧拉函数,求小于等于n 的数里与 n 互质的数的个数
- 欧拉函数的延伸:关于求小于等于n且与n互质的数的和。
- 小于n且与n互素的整数个数(欧拉函数)的计算
- HDU 2824 欧拉函数 求小于等于n且与n互质数的个数
- [数论]小于n且与n互素的个数(欧拉函数)
- 【欧拉函数】(小于或等于n的数中与n互质的数的数目)
- HDU5430欧拉函数求小于等于n的数中与n互质的数的数目
- hdu 3501 欧拉函数(求小于n与n不互质的数之和)
- hdoj 3501 【欧拉函数 求小于或者等于n的数中 与n互质的数总和】
- Catalan数的递推公式求解
- 求解二进制数中1的个数
- 【算法】欧拉函数——小于n的数中与n互质数的数目
- (java)统计小于N的数中素数的个数
- 1012 求小于n的数里,与n互为素数的个数
- 欧拉函数(求与n互质的数的个数)
- 欧拉函数(求与n互质的数的个数)
- hdu 3501 欧拉的和(≤N且与N互质的数的和
- ubuntu提升root权限
- 最近看到一个开发神器,IntelliJ学习一下
- android与服务器端交互
- Factstone Benchmark
- VB简单堆栈类的实现
- 欧拉公式,求解小于某数且与该数互质的数的个数
- 编程之美2.11 寻找最近点对
- java高级工程师-----struts的ActionProxy
- hdu 2141 二分搜索
- java高级工程师-----struts的内部运行机制详解
- linux查看版本信息
- 1483 求最大最小数 九度Online Judge
- 我的第一次面试准备工作
- Struts2.0的优缺点