poj 2773 Happy 2006
来源:互联网 发布:网络相关知识 编辑:程序博客网 时间:2024/05/18 00:49
http://poj.org/problem?id=2773
#include<iostream>using namespace std;#define N 1001bool h[N*N],flag[N*N];int prime[N],cnt;void init(){memset(h,false,sizeof(h));cnt=0;for(int i=2;i<N;i++){if(!h[i]){prime[cnt++]=i;for(int j=i+i;j<N;j+=i)h[j]=true;}}}int n;__int64 k;__int64 eular(int n){__int64 res=1;int nn=n;memset(flag,0,sizeof(flag));for(int i=0;i<cnt&&prime[i]*prime[i]<=n;i++){if(n%prime[i]==0){res*=prime[i]-1;n/=prime[i];while(n%prime[i]==0){res*=prime[i];n/=prime[i];}for(int j=prime[i];j<=nn;j+=prime[i])flag[j]=1;}}if(n>1){res*=n-1;for(int j=n;j<=nn;j+=n)flag[j]=1;}return res;}int get_prime(__int64 n){int cn=0;for(int i=1;i<n;i++)if(!flag[i]){cn++;if(cn==k)return i;}}int main(){__int64 PHI,base;init();while(~scanf("%d%I64d",&n,&k)){if(n==1){printf("%I64d\n",k);continue;}PHI=eular(n);base=(k-1)/PHI;k=(k-1)%PHI+1;printf("%I64d\n",n*base+get_prime(n));}}
很巧妙,网上看的。。。
- POJ 2773 Happy 2006
- poj 2773 Happy 2006
- poj 2773 Happy 2006
- poj 2773 Happy 2006
- poj 2773 Happy 2006
- POJ 2773 Happy 2006
- poj 2773 Happy 2006
- POJ 2773 Happy 2006
- poj 2773 Happy 2006
- poj 2773 Happy 2006
- POJ 2773 Happy 2006
- poj 2773 Happy 2006
- POJ 2773 Happy 2006
- POJ 2773 HAPPY 2006
- POJ 2773 Happy 2006
- POJ 2773:Happy 2006
- poj 2773Happy 2006
- POJ 2773 Happy 2006
- C/C++刁钻问题各个击破之序言
- flex拓扑图制作
- C/C++刁钻问题各个击破之细说sizeof
- 怎样调试xml文件不提示
- POJ1279/ZOJ1369 Art Gallery,POJ2451 Uyuw's Concert(半平面交求多边形的核)
- poj 2773 Happy 2006
- UNIX TCP/IP配置与检测
- 代码疑云,等你来解
- poj 1271 || UVA 10117 Nice Milk
- Round-Robin负载均衡算法及其实现原理
- DOS命令大全
- POJ1273 Drainage Ditches 简单网络流
- Android AsyncTask
- Linux hostname主机名配置文件与文件 /etc/hosts解说