poj2407小于n的相对素数
来源:互联网 发布:c语言寄存器 编辑:程序博客网 时间:2024/04/29 21:05
# include <iostream># include <cstdio># include <string.h>using namespace std;typedef long long ll;bool u[50000];ll su[50000],num;ll gcd (ll a,ll b){ return b?gcd(b,a%b):a;}void prepare(){ ll i,j; memset(u,true,sizeof(u)); for(i=2;i<=50000;i++) { if(u[i]) su[++num]=i; for(j=1;j<=num;j++) { if(i*su[j]>50000) break; u[i*su[j]]=false; if(i%su[j]==0) break; } }}ll phi(ll x){ ll ans=1; int i,j,k; for(i=1;i<=num;i++) if(x%su[i]==0) { j=0; while(x%su[i]==0) { ++j; x/=su[i]; } for(k=1;k<j;k++) ans=ans*su[i]%100000000711; ans=ans*(su[i]-1)%100000000711; if(x==1) break; } if(x>1) ans=ans*(x-1)%100000000711; return ans;}int main(){ prepare(); int n; ll ans=1; while(scanf("%d",&n)==1&&n>0) { ans=phi(n); printf("%d\n",(int )ans); } return 0;}
0 0
- poj2407小于n的相对素数
- 小于n的素数
- 前n个素数 && 小于等于n的素数_legend
- 查找小于N的所有素数
- 快速求小于N的所有素数
- (java)统计小于N的数中素数的个数
- 输出小于N的所有质数(素数)
- 打印小于N的所有素数(埃拉托色尼筛法)
- 经典算法题之求小于N的所有素数
- 求小于n的素数个数(模板)
- Eratosthenes筛选法求小于N的所有素数个数
- java 找出小于数字N的所有素数
- 计算素数小于非负数的数目,n。
- 素数筛的方法 筛出小于n的所有素数
- 1012 求小于n的数里,与n互为素数的个数
- 输出所有小于等于n(n为一个大于2的正整数)的素数
- 输入任意一个大于2的正整数n,输出所有小于等于n的素数
- c语言 输出所有小于n(n>=2正整数)的素数
- dedecms专栏----资料收集
- 关于3个div,一个固定大小,两个自定义。方法
- 用c语言实现的dft逆变换
- [LeetCode 135]Candy
- 杭电2087 剪花布条
- poj2407小于n的相对素数
- 第四周项目四 指向学生类的指针
- windows程序设计 注册窗口类
- http请求工具类
- PHP学习笔记(九)图形图像操作
- tomcat post,get 编码设置
- AngularJS中的控制器
- windows程序设计 创建窗口
- 关于http post json数据的写法