poj2635 The Embarrassed Cryptographer
来源:互联网 发布:易语言登录器源码 编辑:程序博客网 时间:2024/06/05 18:44
我的天~~不算难把,但是有个小细节没考虑好WA很久,那就是,如果在100W的质数表内没找到那个数,应该是输出GOOD的,通过Sample才找到问题
大数(十位进制变千位)+同余模定理+质数快速有效打表(奇数平方递推筛)
大数(十位进制变千位)+同余模定理+质数快速有效打表(奇数平方递推筛)
用了文件输入输出,赞
#include <iostream>#include <string.h>#include <stdlib.h>#include <cstdio>using namespace std;const int N=1010100;int prime[N];int pNum=0;int que=0;void FindPrime(){ prime[pNum++]=2; for(int i=3;i<=N;i+=2) { bool isprime=true; for(int j=0;prime[j]*prime[j]<=i;j++) { if(!(i%prime[j])) { isprime=false; break; } } if(isprime) prime[pNum++]=i; }}int getMod(int* K,int modthis,int len){ int tmp=0; for(int i=len-1;i>=0;i--) { tmp=(tmp*1000+K[i])%modthis; } return tmp;}void strtointk(char* m,int* K){ int len=strlen(m); int num=0; for(int i=len-1;i>=0;) { for(int j=i-2>=0?i-2:0;j<=i;j++) { num=num*10+m[j]-'0'; } K[que++]=num; num=0; if(i-3>=0) i-=3; else i=-1; } return;}int main(){ //freopen("H:\\in.txt","r",stdin); //freopen("H:\\out.txt","w",stdout); FindPrime(); char m[11111]; int n; while(scanf("%s%d",m,&n)) { que=0; bool canget=false; int K[10111]; memset(K,0,sizeof(K)); strtointk(m,K); if(strcmp(m,"0")==0&&n==0) break; for(int i=0;i<pNum&&prime[i]<n;i++) if(getMod(K,prime[i],que)==0) { if(prime[i]<n) { printf("BAD %d\n",prime[i]); canget=true; break; } else { printf("GOOD\n"); canget=true; break; } } if(!canget) { printf("GOOD\n"); } } //fclose(stdin); //fclose(stdout); return 0;}
0 0
- poj2635 The Embarrassed Cryptographer
- POJ2635 The Embarrassed Cryptographer
- poj2635 The Embarrassed Cryptographer
- POJ2635 The Embarrassed Cryptographer
- POJ2635 The Embarrassed Cryptographer
- POJ2635----The Embarrassed Cryptographer
- poj2635 The Embarrassed Cryptographer
- POJ2635 The Embarrassed Cryptographer (同余)
- POJ2635--The Embarrassed Cryptographer--大数取模
- POJ2635 The Embarrassed Cryptographer 简单数论
- (POJ2635)The Embarrassed Cryptographer(大数取模)
- POJ2635——The Embarrassed Cryptographer
- The Embarrassed Cryptographer poj2635 (大数取模)
- poj2635--The Embarrassed Cryptographer(数论篇1,大数取模)
- poj2635 The Embarrassed Cryptographer(高精度 同余取模)
- poj2635——The Embarrassed Cryptographer(高精度取模)
- pku2635 The Embarrassed Cryptographer
- POJ235 The Embarrassed Cryptographer
- Let us learn C in Code <2>
- Centos下安装freesurfer、fsl、matlab
- 字典排序,运行怎么会崩溃的?
- cinder分布式搭建
- Minimum Path Sum
- poj2635 The Embarrassed Cryptographer
- linux内核编程-可睡眠锁之SRCU
- 开启linux的路由转发功能
- 改变世界的17个等式
- 利用栈将另一个已排序栈中元素反排序
- linux驱动例1--计时器
- 两个字符串地址的复制和内容的复制
- 软件经济学五:创建高效率的团队
- 如何快速正确的安装 Ruby, Rails 运行环境