您的位置:首页 > 其它

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

2016-06-24 10:09 281 查看


[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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: