1366: 分解质因子
时间限制: 1 Sec 内存限制: 128 MB提交: 77 解决: 65
[ 提交][ 状态][ 讨论版]
题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。
样例输入
20
样例输出
2 2 5
提示
注意,最后一个数后面没有空格!!
代码:
#include<stdio.h>
int main()
{
int i,n; //n为一个整数
scanf("%d",&n); //输入n
for(i=2;n>1;i++) //i=2是因为质因数最小为2
{
while(n%i==0) //当n是i的倍数,输出因数i
{
printf("%d",i); //输出因数i
n=n/i; //若i是最后一个质因数,输出回车,否则输出空格
if(n==1)
printf("\n");
else
printf(" ");
}
}
return 0;
}
int main()
{
int i,n; //n为一个整数
scanf("%d",&n); //输入n
for(i=2;n>1;i++) //i=2是因为质因数最小为2
{
while(n%i==0) //当n是i的倍数,输出因数i
{
printf("%d",i); //输出因数i
n=n/i; //若i是最后一个质因数,输出回车,否则输出空格
if(n==1)
printf("\n");
else
printf(" ");
}
}
return 0;
}