PAT A1059. Prime Factors (25)
来源:互联网 发布:centos 6.5 配置yum 编辑:程序博客网 时间:2024/06/14 09:16
1059. Prime Factors (25)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
HE, Qinming
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:97532468Sample Output:
97532468=2^2*11*17*101*1291
打印从1到sqrt(n)的素数表,然后存在prime中,挨个确认是不是n的质因数并确定其个数。最后确定是否有大于sqrt(n)的质因数。
题解:
#include <cstdio>#include <algorithm>#include <cmath>using namespace std;const int MAX = 100000;int n, range, prime[MAX] = {0}, num = 0;bool isprime[MAX] = {false};//表示是素数 struct Factor{int x, cnt;}fac[20];void print_prime(){isprime[1] = true;range = floor(sqrt(n));for(int i = 2; i <= range; i++){if(!isprime[i]){for(int j = i + i; j <= range; j += i){isprime[j] = true;}}}}int main(){scanf("%d", &n);int m = n;if(n == 1){printf("1=1");return 0;} print_prime();for(int i = 1; i <= range; i++){if(isprime[i] == false){prime[num++] = i;}}int fnum = 0;for(int i = 0; i < num; i++){if(n % prime[i] == 0){fac[fnum].x = prime[i];fac[fnum].cnt = 0;while(n % prime[i] == 0){n /= prime[i];fac[fnum].cnt++;}fnum++;}if(n == 1) break;}if(n > 1){fac[fnum].x = n;fac[fnum++].cnt = 1;}printf("%d=", m);for(int i = 0; i < fnum; i++){printf("%d", fac[i].x);if(fac[i].cnt > 1) printf("^%d", fac[i].cnt);if(i != fnum-1) printf("*");}return 0;}
阅读全文
0 0
- pat-a1059. Prime Factors (25)
- PAT A1059. Prime Factors (25)
- PAT A1059. Prime Factors (25)
- prime factors PAT-A1059
- PAT-A1059. Prime Factors (25(素数)
- A1059. Prime Factors (25)
- PAT- Prime Factors (25)
- 1059. Prime Factors (25)-PAT
- 【PAT】1059. Prime Factors (25)
- PAT 1059. Prime Factors (25)
- PAT 1059. Prime Factors (25)
- PAT 1019Prime Factors (25)
- PAT 1059. Prime Factors (25)
- PAT A 1059. Prime Factors (25)
- 1059. Prime Factors (25) PAT 甲级
- 【PAT甲级】1059. Prime Factors (25)
- PAT甲级练习1059. Prime Factors (25)
- PAT甲级1059. Prime Factors (25)
- Nova创建虚拟机(指定IP地址和生成节点)
- ${pageContext.request.contextPath}及服务器解析和浏览器解析路径问题
- Python 文件读取
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- Spark---性能调优之资源调优篇
- PAT A1059. Prime Factors (25)
- HDU1070
- eclipse中Program arguments和VM arguments的区别
- 程序包xxx不存在,找不到符号
- 独热编码(One-Hot Encoding)
- CCF 201604-3 路径解析
- sqlite的增删改查详解
- HDU1076
- Android中scrollview与webview冲突事件