问题链接:CCF NOI1170 质因数分解。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
对于正整数N的质因数分解,指的是将其写成以下形式:
N=p1*p2*...*pm,其中p1,p2,...pm为不下降的质数
给定N,输出其质因数分解的形式。
输入
输入一个正整数N。
输出
输出N的质因数分解的形式p1*p2*...*pm,其中p1,p2,...,pm都是质数,且p1<=p2<=...<=pm。
样例输入
60
样例输出
2*2*3*5
数据范围限制
2<=N<=10^9
提示
问题分析
整数因子分解问题,从小到大试探即可。
结束条件需要控制好。
输出格式需要控制好。
(略)
要点详解
- 把功能封装到函数中是一个好的做法。
- 要根据输入数的类型选用合适的类型。
参考链接:欧拉函数。
100分通过的C语言程序:
#include <stdio.h> void fact(long n) { long i; int flag = 0; for(i=2; i*i<=n; i++) { if(n%i == 0) { n /= i; if(flag) printf("*%ld", i); else { printf("%ld", i); flag = 1; } while(n%i == 0) { n /= i; if(flag) printf("*%ld", i); else { printf("%ld", i); flag = 1; } } } } if(n>1) { if(flag) printf("*%ld", n); else printf("%ld", n); } printf(" "); } int main(void) { long n; scanf("%ld", &n); fact(n); return 0; }