poj 2191 Mersenne Composite Numbers
2011-07-22 22:49
495 查看
#include<iostream> using namespace std; bool is_prime(int a) { if(a==1) return false; for(int i=2;i*i<=a;++i) if(a%i==0) return false; return true; } long long num[100]={1},ans[10]; int main() { int n; cin>>n; for(int i=1;i<64;++i) num[i]=num[i-1]*2; //无法使用pow(2.0,i)或1<<i for(int i=1;i<n;++i) { int ok=0; if(is_prime(i)) //根据题意,i必须是素数 { long long s=num[i]-1; int rear=0; for(long long p=2;p*p<=s;++p) // 筛选s的素因子 { while(s%p==0) { ans[rear++]=p; s=s/p; ok=1; } } if(ok) { ans[rear]=s; cout<<ans[0]; for(int j=1;j<=rear;++j) cout<<" * "<<ans[j]; cout<<" = "<<num[i]-1<<" = ( 2 ^ "<<i<<" ) - 1\n"; } } } return 0; }
相关文章推荐
- POJ 2191 Mersenne Composite Numbers 整数分解
- POJ-2191-Mersenne Composite Numbers
- poj 2191 Mersenne Composite Numbers 筛法判素数
- poj 2191 Mersenne Composite Numbers
- poj 2191 Mersenne Composite Numbers 大数分解
- POJ 2191 Mersenne Composite Numbers 解题报告(大数因式分解)
- poj Mersenne Composite Numbers
- SNOJ上1014——梅森合数(Mersenne Composite Numbers)——含‘相关资料’!
- HOJ 2022 Mersenne Composite Numbers
- poj 1995 Raising Modulo Numbers
- POJ 2769 Reduced ID Numbers (同余)
- POJ--1995--Raising Modulo Numbers
- POJ 1016 测试数据( East Central North America 1998 Numbers That Count Test data )
- POJ:3641 Pseudoprime numbers(快速幂)
- POJ 2769 Reduced ID Numbers
- POJ 3292 Semi-prime H-numbers
- poj 1995 Raising Modulo Numbers(同余定理+快速幂)
- poj 2247 Humble Numbers
- POJ 2769 Reduced ID Numbers
- poj 1504 Adding Reversed Numbers