COJ 1010 [001]质因数分解 [EASY]

来源:互联网 发布:java求圆周率 编辑:程序博客网 时间:2024/06/06 23:00



[001]质因数分解 [EASY]

Time Limit: 1000 ms     Memory Limit: 65536 KB
Total Submit: 1891     Accepted: 582 

Description
找出输入整数的所有质因数(包括重复质因数),并按从小到大的顺序依次输出。


Input
输入一组待分解整数,每个整数k占一行。
保证所有的输入数字1 <= k < 2^21 


Output
输出每个输入整数的所有质因数(按因子从小到大的顺序输出),质因数之间用空格隔开。

(每个数后边跟个空格就行,结果只有一个数的时候也跟个空格)

Sample Input
4
7
12


Sample Output
2 2 

2 2 3 


Hint
如果不知道如何检测输入的结束,可以参考如下说明: 
在C++下 
while (cin >> n) 

... 


在C语言下 
while (scanf("%d", &n)==1) 

... 

或者 
while (scanf("%d", &n)!=EOF) 

... 



Source



#include <stdio.h>#include <cmath>#include <cstring>#include <algorithm>#include <iostream>#include <time.h>int main(){ int i,k; while(scanf("%d",&k)!=EOF) {     for(i=2;i<=sqrt(k);)     {         if(k%i!=0) i++;//如果不满足就i+1         else        {        printf("%d ",i);//满足就输出i 并且看i是否还能满足新k        k=k/i;        }     }     printf("%d \n",k);//没因子的时候就输出最后一个k } return 0;}


0 0