POJ 2635 The Embarrassed Cryptographer
来源:互联网 发布:电信网络转换 编辑:程序博客网 时间:2024/04/29 19:28
重要提示:不要在意那个图……
题目大意:
给一个K,范围0到10的100次方,是由两个素数相乘得出的。
再给出一个数L,范围0到10的6次方。
问相乘出K的两个素数是否都大于L,如果有小于的输出BAD+最小的那个素数,没有输出GOOD。
解题思路:
这其实是个模拟题啊……
1、先打出10的6次方加100以内的素数,为什么呢?防止越界。
2、将K处理成千进制,用同余模定理来从小到大枚举素数判断是否整除。
3、当枚举的素数大于L且没有能整除K的素数,输出GOOD,有就输出BAD+ 那个素数。
下面是代码:
#include <stdio.h>#include <string.h>#define N 1000500int num[40],pri[N],prc=0;bool vis[N+5]= {false};void ScreeningPrime(){ int i, j; for(i = 2; i*i <= N; i++) { if(!vis[i]) { for(j = i*i; j <= N; j += i) { vis[j] = true; } } } for(i=2; i<N; i++) { if(!vis[i]) { pri[prc]=i; prc++; } }}bool mod(int pr,int len){ int yu=0; for(int i=len-1;i>=0;i--) { yu=(yu*1000+num[i])%pr; } if(yu) { return false; } else { return true; }}int main(){ char k[105]; int l; ScreeningPrime(); while(scanf("%s%d",k,&l)!=EOF) { int len=strlen(k); if(l==0&&k[0]=='0'&&len==1) { break; } int cnt=0,flat=0,i=len-1,x=1; num[cnt]=0; while(i>=0) { num[cnt]+=(k[i]-'0')*x; x*=10; flat++; if(flat==3) { flat=0; x=1; cnt++; num[cnt]=0; } i--; } if(flat!=0) { cnt++; } flat=0; x=0; while(pri[x]<l) { if(mod(pri[x],cnt)) { flat=1; printf("BAD %d\n",pri[x]); break; } x++; } if(!flat) { puts("GOOD"); } } return 0;}
0 0
- POJ 2635 The Embarrassed Cryptographer
- poj 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- poj-2635-The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- poj 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- 【POJ 2635】 The Embarrassed Cryptographer
- The Embarrassed Cryptographer(POJ--2635
- POJ-2635 The Embarrassed Cryptographer
- POJ 2635 The Embarrassed Cryptographer
- poj 2635 The Embarrassed Cryptographer
- 硬件设计
- IOS学习笔记 多线程基本理论基础(1)
- 据说,年薪百万的程序员,都是这么开悟的
- android-合并两张图片bitmap
- jquery append加入新元素后事件无效处理方法
- POJ 2635 The Embarrassed Cryptographer
- H264码流中SPS的获取
- 鸟哥私房菜2nd之Linux磁盘与文件系统管理 - 2/3
- 25个必须记住的SSH命令
- 第一次使用git 将 工程发布到github中
- 发展之道:简单与专注
- Python实用技巧-成为Pythoner必经之路
- Android源代码下载过程中无法下载repo的解决方法
- Android APK 签名比对