POJ 1365 -- Prime Land
2015-01-06 09:17
267 查看
题目大意:题目给出一个整数的质数分解展开形式,给出每一个质因数及对应的指数。
例如样例2: 5 1 2 1 = 5^1*2^1 = 10
根据所给的质数分解展开形式求出原数n,并求出n-1的展开形式,也像样例给的形式,质因数逐渐减小的形式。
思路分析:先进行筛素数,再用n逐一对质数试除,求得质因数,并在此过程中记录求得质因数的指数。
代码:
还可以运用#include<string>下的string ,#include<stream>下的stringstream进行数据输入:
具体用法连接:http://blog.csdn.net/xw20084898/article/details/21939811
http://acm.nudt.edu.cn/~twcourse/libtech.html
例如样例2: 5 1 2 1 = 5^1*2^1 = 10
根据所给的质数分解展开形式求出原数n,并求出n-1的展开形式,也像样例给的形式,质因数逐渐减小的形式。
思路分析:先进行筛素数,再用n逐一对质数试除,求得质因数,并在此过程中记录求得质因数的指数。
代码:
#include<stdio.h> #include<string.h> #include<math.h> const int maxn=100000; int prime[maxn/3]; int flag[maxn]; long long p[maxn],e[maxn],cnt1,cnt2; int cnt; void Prime(){ cnt=0; memset(flag,0,sizeof(flag)); for(int i=2;i<maxn;i++){ if(!flag[i]) prime[cnt++]=i; for(int j=0;i*prime[j]<maxn;j++){ flag[i*prime[j]]=1; if(i%prime[j]==0) break; } } } void f(long long n){ memset(e,0,sizeof(e)); cnt1=0,cnt2=0; for(int i=0;i<cnt&&n>1;i++){ if(n%prime[i]==0){ p[cnt1++]=prime[i]; while(n%prime[i]==0){ n/=prime[i]; e[cnt2]+=1; } cnt2++; } } if(n>1){ p[cnt1++]=n; e[cnt2++]++; } printf("%lld %lld",p[cnt1-1],e[cnt2-1]); for(int i=cnt1-2;i>=0;i--) printf(" %lld %lld",p[i],e[i]); printf("\n"); } int main(){ Prime(); int a,b; while(scanf("%d",&a)==1){ if(a==0) break; long long n; char c; scanf("%d%c",&b,&c); double n1=pow(a*1.0,b*1.0); n=(long long)n1; while(c!='\n'){ scanf("%d%d%c",&a,&b,&c); double n1=pow(a*1.0,b*1.0); n*=(long long)n1; } f(n-1); } }
还可以运用#include<string>下的string ,#include<stream>下的stringstream进行数据输入:
具体用法连接:http://blog.csdn.net/xw20084898/article/details/21939811
http://acm.nudt.edu.cn/~twcourse/libtech.html
int main(){ Prime(); string s; stringstream ss; long long n; while(getline(cin,s)){ if(s[0]=='0') break; n=1; ss.clear(); ss.str(s); int a,b; while(ss>>a>>b){ double n1=pow(a*1.0,b*1.0); n*=(long long)n1; } f(n-1); } }
int main(){ Prime(); string s; long long n; while(getline(cin,s)){ if(s[0]=='0') break; n=1; istringstream in(s); int a,b; while(in>>a>>b){ double n1=pow(a*1.0,b*1.0); n*=(long long)n1; } f(n-1); } }
相关文章推荐
- poj 1365 Prime Land 唯一分解定理
- POJ 1365 Prime Land
- Prime Land(poj 1365)
- poj 1365 Prime Land
- [水+整数分解] poj 1365 Prime Land
- POJ-1365-Prime Land
- POJ 1365 Prime Land
- poj 1365 Prime Land
- poj 1365
- poj 1365 Prime Land
- POJ1365 - Prime Land(质因数分解)
- POJ 1365 Prime Land(数论)
- poj 1365 Prime Land (数学--唯一分解定理)
- (Relax 数论1.10)POJ 1365 Prime Land(质因数分解)
- poj 1365 Prime Land 【简单数论】
- 【poj 1365】 Prime Land 【Central Europe 1997】
- POJ_1365_Prime_Land
- POJ 1365 Prime Land
- poj 1365 Prime Land 素因数分解
- POJ 1365 Prime Land 整数分解