RSA Factorization----POJ3892----数学题+大数
来源:互联网 发布:语音识别模块 淘宝 编辑:程序博客网 时间:2024/06/13 20:47
题目地址:http://poj.org/problem?id=3892
给你一个数N和一个K
其中N可以被两个素数P,Q分解
加了一个条件: |q - kp| <= 105
要你求出p和q
解题思路:
题目中,q<=p且 |q - kp| <= 105
所以kp-q<=105
那么kpq-q*q<=10^5*q
因为n=pq
所以kn-q*q<=10^5*q
所以q^2>=kn-10^5*q,得到这个式子就可以看出来其实q就在sqrt(kn)附近,那么我们在他附近枚举就好了
用java就可以轻松水过了
import java.math.BigInteger;import java.util.Scanner;public class Main {/** * @param args */static BigInteger n;static BigInteger k;public static void main(String[] args) {// TODO Auto-generated method stubScanner cin = new Scanner(System.in);BigInteger one = BigInteger.ONE;BigInteger two = BigInteger.valueOf(2);BigInteger zero = BigInteger.ZERO;BigInteger l,r,tmp,mid;mid=zero;while(cin.hasNext()){n = cin.nextBigInteger();k = cin.nextBigInteger();k = k.multiply(n);l = zero;r = k;while(l.compareTo(r)<=0){mid = l.add(r).divide(two);tmp = mid.multiply(mid);if(tmp.compareTo(k) == 0)break;if(tmp.compareTo(k) < 0)l=mid.add(one);elser=mid.subtract(one);}BigInteger p,q;p = mid;q = mid;while(true){if(n.mod(p).equals(zero) && !p.equals(one) && !p.equals(n)){q = n.divide(p);break;}if(n.mod(q).equals(zero)&& !q.equals(one) && !q.equals(n)){p = n.divide(q);break;}p = p.add(one);q = q.subtract(one);}if(p.compareTo(q)>0){tmp = p;p = q;q = tmp;}System.out.println(p+" * "+q);}}}
- RSA Factorization----POJ3892----数学题+大数
- POJ 3892 RSA Factorization
- poj3892 高精度
- 《RSA与大数运算》
- RSA与大数运算
- RSA与大数运算
- RSA大数运算库
- 算法 - RSA大数分解
- Factorization
- 大数运算和RSA算法
- 大数运算和RSA算法
- 转贴:RSA与大数运算
- RSA与大数运算(转载)
- RSA与大数运算(基本原理剖析)
- RSA与大数运算(C语言)
- GMP大数库实现RSA算法
- ACdream 1217 Cracking' RSA(高斯消元 + 大数)
- 【大数相加】SDUT 2046 RSA加密运算
- build glibc-2.10.1 on ubuntu based on gcc 4.4
- dispatch_async 与 dispatch_get_global_queue
- poj 1270 Following Orders (简单的拓扑排序)
- 浅析NoSQL技术与数据库教学的关系
- 用一个package大致说明一下11g--plsql新特性
- RSA Factorization----POJ3892----数学题+大数
- 4.4 Decorator模式
- 深入理解C函数声明
- zookeeper3.3学习笔记2:配置参数介绍
- Java菜鸟学习笔记--面向对象篇(十三):interface
- 选择排序算法
- 收录几张和服务器架构相关的原理图
- LOAD DATA自动增长ID
- 精选PSD素材下载周刊【Goodfav PSD 20130720】