将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。
输入格式
一行,一个正整数
输出格式
两行,第一行为用空格分开的质因数
第二行为质因数的个数
样例输入
66
样例输出
2 3 113
样例输入
90
样例输出
2 3 3 5
4
样例输入
37
样例输出
37
1
#include <stdio.h>
void shuchu( int);
int q_su(int);
int main(void)
{
int n;
scanf("%d",&n);
shuchu(n);
return 0;
}
void shuchu( int n)
{
int i,cs=0;
for(i=1;i<=n;i++)
{
if(n%i==0&&q_su(i)==1)
{
if( (n/=i) != 1 )
{
printf("%d ", i);
}
else
{
printf("%d\n", i);
}
cs++;
i=1;
}
}
printf("%d\n",cs);
}
int q_su(int n)
{
int i,s=0;
for(i=1;i<n;i++)
{
if(n%i==0)
{
s+=1;
}
}
if(s==1)
{
return 1;
}
return 0;
}