POJ-2635 The Embarrassed Cryptographer
2016-04-18 22:06
447 查看
Description
The young and very promising cryptographer Odd Even has implemented the security module of a large system with thousands of users, which is now in use in his company.
The cryptographic keys are created from the product of two primes, and are believed to be secure because there is no known method for factoring such a product effectively.
What Odd Even did not think of, was that both factors in a key should be large, not just their product. It is now possible that some of the users of the system have weak keys. In a desperate attempt not to be fired, Odd Even secretly goes through all the users
keys, to check if they are strong enough. He uses his very poweful Atari, and is especially careful when checking his boss' key.
Input
The input consists of no more than 20 test cases. Each test case is a line with the integers 4 <= K <= 10100 and 2 <= L <= 106. K is the key itself, a product of two primes. L is the wanted minimum size of
the factors in the key. The input set is terminated by a case where K = 0 and L = 0.
Output
For each number K, if one of its factors are strictly less than the required L, your program should output "BAD p", where p is the smallest factor in K. Otherwise, it should output "GOOD". Cases should be separated by a line-break.
Sample Input
Sample Output
Source
Nordic 2005
题目大意:给你一个高精度数n和一个单精度数l,问n的第一个质因数是否小于l。
分析: WA了好久才过,直接暴力会超时,要用到压位高精度。
The young and very promising cryptographer Odd Even has implemented the security module of a large system with thousands of users, which is now in use in his company.
The cryptographic keys are created from the product of two primes, and are believed to be secure because there is no known method for factoring such a product effectively.
What Odd Even did not think of, was that both factors in a key should be large, not just their product. It is now possible that some of the users of the system have weak keys. In a desperate attempt not to be fired, Odd Even secretly goes through all the users
keys, to check if they are strong enough. He uses his very poweful Atari, and is especially careful when checking his boss' key.
Input
The input consists of no more than 20 test cases. Each test case is a line with the integers 4 <= K <= 10100 and 2 <= L <= 106. K is the key itself, a product of two primes. L is the wanted minimum size of
the factors in the key. The input set is terminated by a case where K = 0 and L = 0.
Output
For each number K, if one of its factors are strictly less than the required L, your program should output "BAD p", where p is the smallest factor in K. Otherwise, it should output "GOOD". Cases should be separated by a line-break.
Sample Input
143 10 143 20 667 20 667 30 2573 30 2573 40 0 0
Sample Output
GOOD BAD 11 GOOD BAD 23 GOOD BAD 31
Source
Nordic 2005
题目大意:给你一个高精度数n和一个单精度数l,问n的第一个质因数是否小于l。
分析: WA了好久才过,直接暴力会超时,要用到压位高精度。
#include <cstdio> #include <cstring> #include <iostream> #define MAXN 1000000 using namespace std; int num,l,prim[MAXN+1],f[101]; bool notprim[MAXN+1]; char s[101]; int Size(int x) { if(x == 0) return 1000; if(x == 2) return 100; return 10; } int main() { for(int i = 2;i <= MAXN;i++) if(!notprim[i]) { prim[++num] = i; for(int j = 2*i;j <= MAXN;j += i) notprim[j] = true; } while(scanf("%s%d",s,&l) && l) { int length = strlen(s),tot = 0; bool flag = false; for(int i = 0;i < length;i++) { if(i % 3 == 0) f[++tot] = s[i] - '0'; else f[tot] = f[tot]*10 + s[i] - '0'; } for(int i = 1;i <= num && prim[i] < l;i++) { int now = 0; for(int j = 1;j < tot;j++) now = (now*1000 + f[j]) % prim[i]; now = (now*Size(length % 3) + f[tot]) % prim[i]; if(now == 0) { cout<<"BAD "<<prim[i]<<endl; flag = true; break; } } if(!flag) cout<<"GOOD"<<endl; } }
相关文章推荐
- ognl和el表达式的区别
- POJ 2785 4 Values whose Sum is 0 折半枚举(双向搜索)
- 关于volatile关键字的用法,从汇编透视C语法操作
- 第一冲刺阶段——个人工作总结01
- 达沃斯论坛摊牌:比特币VS区块链
- 俄媒关注数字货币:中国可能第一个…
- 英国政府区块链报告的五项必读摘要
- Bitcoin Core推出社交媒体平台
- 欧洲央行董事:区块链将颠覆支付格…
- 构造方法和匿名对象
- 欧洲准备为虚拟货币召开公开听证会
- Etherem以太坊在数字货币市值排名…
- 人民网:中国版“比特币”已在路上
- Aurora problems running latex 的解决
- 外媒:中国央行数字货币还有很长的…
- 随着拓展性辩论的进行,大型矿业公…
- Cryptsy CEO:隐瞒比特币被盗…
- 怀俄明州立法者寻求比特币的“公平…
- 消费者研究强调比特币对政策制定者…
- 普华永道宣布将会正式进军区块链行…