问题链接: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("\n"); } int main(void) { long n; scanf("%ld", &n); fact(n); return 0; }
