题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。
样例输入
20
样例输出
2 2 5
提示
注意,最后一个数后面没有空格!!
#include<stdio.h>
#include<string.h>
#include<math.h>
int ss(int x)
{
if(x==2)//特殊情况考虑;
{
return 1;
}
else if(x==1)//特殊情况考虑;
{
return 0;
}
else
{
int i;
int b=0;
for(i=2; i<x; i++)
{
if(x%i==0)
{
b=1;//b用来标记;
break;
}
}
if(b==1)
{
return 0;
}
else
{
return 1;
}
}
}
int main()
{
int n,i;
scanf("%d",&n);
int s[100];
int p=0;
while(n>0)
{
for(i=1; i<=n; i++)
{
if(n%i==0&&ss(i)==1)
{
s[p]=i;
break;
}
}
n=n/i;
p++;
}
int t=p;
for(i=0;i<t-1;i++)
{
printf(i==t-2?"%d":"%d ",s[i]);//注意空格。
}
return 0;
}