高精度(快速幂)
来源:互联网 发布:精彩软件官网 编辑:程序博客网 时间:2024/05/17 02:50
https://vijos.org/p/1223
形如2^P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2^P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。
任务:从文件中输入P(1000
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>const int maxn = 1e4;using namespace std;int p;void init(){ scanf("%d",&p); printf("%d\n",(int)(p*(log(2))/log(10)+1));}struct BigInt{ int len,a[maxn]; void clear(){ memset(a,0,sizeof(a)); } void out(){ int cnt = 0; for(int i = 500 ; i >= 1; i--){ cnt++; if(i==1) printf("%d",a[i]-1); else printf("%d",a[i]); if(cnt % 50 == 0) printf("\n"); } }}A,B;BigInt Mul(BigInt AA,BigInt BB){ BigInt C;C.clear();C.len=AA.len+BB.len; for(int i = 1; i <= AA.len;i++) for(int j = 1; j <= BB.len ;j++){ if(i+j-1 > 505) continue; C.a[i+j-1]+=AA.a[i]*BB.a[j]; // printf("C.%d =%d\n",i+j-1,C.a[i+j-1]); } for(int i = 1; i <= 505; i++){ C.a[i+1]+=C.a[i]/10,C.a[i]%=10; } C.a[501] = 0; while(C.len > 0 && C.a[C.len] == 0) C.len--; return C;}void quickpow(){ A.clear(); B.clear(); A.a[1] =1;A.len = 1; B.a[1] =2;B.len = 1; while(p > 0){ if(p&1) A = Mul(A,B); B = Mul(B,B); p >>= 1; } A.out();}int main(){ init(); quickpow();}
0 0
- 高精度(快速幂)
- [noip2003]麦森数(快速幂+高精度)
- 高精度实现快速幂
- 高精度之快速幂
- OpenJudge_P1708 麦森数(快速幂+高精度)
- poj2706-麦森数-高精度快速幂
- 简单高精度乘法与简单高精度快速幂
- Hdu 4704 Sum -- 快速幂+高精度处理
- wikioi 麦森数 快速幂 高精度乘法
- 【codevs1087&&NOIP2003】麦森数,高精度+对数+快速幂
- [NOIP2003]麦森数 【快速幂分治】【高精度运算】
- 【NOI2012T1】随机数生成器-矩阵快速幂+高精度
- 洛谷Oj-麦森数-高精度快速幂
- POJ 1001 求高精度幂(高精度)
- BZOJ 1089: [SCOI2003]严格n元树(dp+高精度快速幂)
- 高精度快速阶乘算法
- POJ 1001 高精度实数相乘与快速幂
- ZOJ 2317 高精度+状压DP+矩阵快速幂
- AS 配置与使用SVN
- SharedPreferences 简单应用
- Linux_终端命令大全
- Android下USB Accessory的实现分析
- Linux中常用的监控CPU整体性能的工具
- 高精度(快速幂)
- 深度学习 基于DCNN的人脸特征点定位
- 本地考察OSPF开销计算,要理解是路由的入接口才可能影响选路。
- vim重复编辑的解决办法
- 行为型模式--状态模式
- jQuery 的each循环中结束方式
- Android studio 如何打包项目,与版本升级
- 关灯游戏 Lights out (二)(首行枚举+位运算,搜索全部解)
- 关于dojo模块化引入包的问题