poj1181 大数分解
//Accepted 164 KB 422 ms //类似poj2429 大数分解 #include <cstdio> #include <cstring> #include <ctime> #include <time.h> #include <iostream> #include <algorithm> using namespace std; ; __int64 gcd(__int64 a,__int64 b) { ) return a; return gcd(b,a%b); } __int64 mult_mod(__int64 a,__int64 b,__int64 p) { __int64 res=,temp=a%p; while (b) { ) { res+=temp; if (res>=p) res-=p; } temp<<=; if (temp>=p) temp-=p; b>>=; } return res; } __int64 exp_mod(__int64 a,__int64 b,__int64 p) { __int64 res=,exp=a%p; ) { ) res=mult_mod(res,exp,p); exp=mult_mod(exp,exp,p); b>>=; } return res; } bool miller_rabin(__int64 n,__int64 times) { ) return true; || !(n&)) return false; __int64 a,u=n-,x,y; ; ==) { t++; u/=; } srand(time()); ;i<times;i++) { a=rand()%(n-)+; x=exp_mod(a,u,n); ;j<t;j++) { y=mult_mod(x,x,n); && x!= && x!=n-) return false; x=y; } ) return false; } return true; } __int64 pollar_rho(__int64 n,int c) { __int64 x,y,d,i=,k=; srand(time()); x=rand()%(n-)+; y=x; while (true) { i++; x=(mult_mod(x,x,n)+c)%n; d=gcd(y-x,n); && d<n) return d; if (y==x) return n; if (i==k) { y=x; k<<=; } } } __int64 min_ans; void findMinFactor(__int64 n,int c) { ) return ; )) { if (n<min_ans) min_ans=n; return ; } __int64 p=n; while (p>=n) p=pollar_rho(p,c--); findMinFactor(p,c); findMinFactor(n/p,c); } int main() { int T; scanf("%d",&T); while (T--) { __int64 n; scanf("%I64d",&n); )==true) { printf("Prime\n"); } else { min_ans=inf; findMinFactor(n,); printf("%I64d\n",min_ans); } } ; }
poj1181 大数分解的更多相关文章
- HDU4344(大数分解)
题目:Mark the Rope 题意就是给一个数,然后求这个数的所有因子中组成的最大的一个子集,其中1和本身除外,使得在这个子集中元素两两互素,求最大子集的元素个 数,并且求出和最大的值. 找规律就 ...
- poj 1811 随机素数和大数分解(模板)
Sample Input 2 5 10 Sample Output Prime 2 模板学习: 判断是否是素数,数据很大,所以用miller,不是的话再用pollard rho分解 miller : ...
- Pollard_Rho大数分解模板题 pku-2191
题意:给你一个数n, 定义m=2k-1, {k|1<=k<=n},并且 k为素数; 当m为合数时,求分解为质因数,输出格式如下:47 * 178481 = 8388607 = ( ...
- poj 1811 大数分解
模板 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> ...
- poj 2429 Pollard_rho大数分解
先对lcm/gcd进行分解,问题转变为从因子中选出一些数相乘,剩下的数也相乘,要求和最小. 这里能够直接搜索,注意一个问题,因为同样因子不能分配给两边(会改变gcd)所以能够将同样因子合并,这种话,搜 ...
- 模板题Pollard_Rho大数分解 A - Prime Test POJ - 1811
题意:是素数就输出Prime,不是就输出最小因子. #include <cstdio> #include<time.h> #include <algorithm> ...
- 【模板】SPOJ FACT0 大数分解 miller-rabin & pollard-rho
http://www.spoj.com/problems/FACT0/en/ 给一个小于1e15的数,将他分解. miller-rabin & pollard-rho模板 #include & ...
- 数学--数论---P4718 Pollard-Rho算法 大数分解
P4718 [模板]Pollard-Rho算法 题目描述 MillerRabin算法是一种高效的质数判断方法.虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的.Pollar ...
- poj2429 大数分解+dfs
//Accepted 172 KB 172 ms //该程序为随机性算法,运行时间不定 #include <cstdio> #include <cstring> #includ ...
随机推荐
- [转]Android各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...
- xcode 真机调试 failed to get the task for process xxx
xcode 真机调试 failed to get the task for process xxx 此错误原因是,使用 in house profile 签名了真机调试的证书: 在 target--- ...
- python 练习 19
#!/usr/bin/python # -*- coding: UTF-8 -*- for n in range(100,1000): i = n / 100 j = n / 10 % 10 k = ...
- alpha发布(技术随笔)
昨天是班级里面每个小组要进行alpha演示,大家都很努力的去做自己的项目.我们nice!组没有演示自己的项目,只一点很惭愧,身为组员没有协助组长按时完成项目,这一点自己也感觉很抱歉,虽然每天感觉自己都 ...
- 关于 iOS 批量打包的总结
关于 iOS 批量打包的总结 本文作者: 伯乐在线 - Tsui YuenHong .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 如果你曾经试过做多 target 的项目,到了测试人员要 ...
- IOS-错误总结
1,警告:"xoxoxoxo" is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可.2,警告:Declaration of " ...
- template模版与Underscore.js
template模版与Underscore.js 在项目中经常使用的模版是Underscore这个js框架的实用功能. 在html里面设定模板,然后js绑定数据,这样能避免在js中出现非常多的html ...
- 更改电脑与eclpse热键冲突
- linux 一些命令
1.查看cpu个数 cat /proc/cpuinfo |grep "physical id" |sort | uniq |wc -l 2 2.查看cpu逻辑个数 cat /pro ...
- SQL 修改数据库架构名
SQl 修改数据库架构名 declare @name sysname declare csr1 cursor for select TABLE_NAME from INFORMATION_SCHEMA ...