Description
将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出。最后输出质因数的个数。
Input
一行,一个正整数
Output
两行,第一行为用空格分开的质因数,注意行末没有多余的空格。
第二行为质因数的个数
Sample Input 1
66
Sample Output 1
2 3 11 3
Code
#include <stdio.h>
#include <math.h>
int main()
{
int num,count=0;
scanf("%d", &num);
for (int i = 2; i <= num; i++)
{
if (num % i == 0)
{
if(count==0)
printf("%d", i);
else
printf(" %d",i);
count++;
num/=i;
if(num%i==0)
i--;
}
if(num==1)
break;
}
printf("\n");
printf("%d",count);
return 0;
}