1071: 分解质因子
题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。
样例输入
20
样例输出
2 2 5
提示
注意,最后一个数后面没有空格!!
#include <stdio.h>
#include <math.h>
int prime(int m);/*判断是否为质数*/
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;n!=1;i++)
{
if(n%i==0)
{
if(prime(i)==1)
{
if(n!=1)
{
n=n/i;
printf("%d ",i);
i=1;
}
else
{
printf("%d",i);
}
}
}
}
return 0;
}
int prime(int m)
{
int i,k;
if(m==1)
return 0;
k=(int)sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
return 0;
}
return 1;
}