PAT (Advanced Level) 1059. Prime Factors (25) 求所有质因子
2015-07-27 21:46
330 查看
Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1* p2^k2 *…*pm^km.
Input Specification:
Each input file contains one test case which gives a positive integer N in the range of long int.
Output Specification:
Factor N in the format N = p1^k1 * p2^k2 *…*pm^km, where pi's
are prime factors of N in increasing order, and the exponent ki is the number of pi -- hence when there is only one pi, ki is
1 and must NOT be printed out.
Sample Input:
Sample Output:
[/code]
Input Specification:
Each input file contains one test case which gives a positive integer N in the range of long int.
Output Specification:
Factor N in the format N = p1^k1 * p2^k2 *…*pm^km, where pi's
are prime factors of N in increasing order, and the exponent ki is the number of pi -- hence when there is only one pi, ki is
1 and must NOT be printed out.
Sample Input:
97532468
Sample Output:
97532468=2^2*11*17*101*1291
求出所有质因子存到结果数组,输出控制。
/*2015.7.27cyq*/ #include <iostream> #include <vector> using namespace std; bool isprime(int n){ if(n<=1) return false; if(n==2||n==3) return true; for(int i=2;i*i<=n;i++) if(n%i==0) return false; return true; } int main(){ long N; cin>>N; if(N==1){ cout<<"1=1"; return 0; } vector<int> result;//结果数组,存储所有质因子 long tmp=N; while(tmp!=1){ for(int i=2;i<=tmp;i++){ if(isprime(i)&&(tmp%i==0)){ result.push_back(i); tmp/=i; break; } } } cout<<N<<"="; auto it=result.begin(); cout<<*it; long pre=*it; it++; int count=1; while(it!=result.end()){ while(it<result.end()&&*it==pre){ count++; it++; } //it指向一个新的数或result.end() if(count>1){ cout<<"^"<<count; count=1; }else{ cout<<"*"<<*it; pre=*it; it++; } } return 0; }
[/code]
相关文章推荐
- 进程和线程的差别
- hdu 4411 Arrest (最小费用最大流)
- 数据结构---单链表(2)
- linux c++循环缓冲区模板类
- zoj3202 Second-price Auction
- IOS中NSUserDefaults的用法(轻量级本地数据存储) (转)
- 搭建基于LAMP的web应用程序平台
- JS常用正则表达式
- linux中的nm命令简介
- Day07_request-response
- 辗转相除法的最差情况
- Recvoery相关文章合集
- 【LeetCode】7 & 8 - Reverse Integer & String to Integer (atoi)
- 代码注释总结
- [LeetCode]Number of Islands
- 准零基础搞懂FFT快速傅里叶变换及其实现程序(二)
- Deep Learning 工具 Torch7安装与使用
- MDCC 2014移动开发者大会 小礼品展商活动
- BNU 20860——Forwarding Emails——————【强连通图缩点+记忆化搜索】
- Asp.net-MyFirstMVCProject详细解释