完整的代码:
#include<stdio.h>
int main()
{
long a;
int i;
while(scanf("%ld",&a) != EOF)
{
for(i=2;i<=a;i++)
{
while(a%i == 0)
{
printf("%d ", i);
a = a/i;
}
}
}
return 0;
}
难点:
1.理解质数和因子是什么意思。质数就是除1和它本身之外,它就不能整除任何数字。因子就是该数能够整除的数字。质数因子就是两者的结合。
2.long类型数的输入
解题思路:
把一个数从2开始分解成全是质数相乘得到的数,可以这样理解,质数之外是合数(除1和其本身之外还有其他的因子)。因此我们只要不停的把合数进行分解,分解到最后肯定就是质数。并且我们是从因子2开始逐步的往上寻找的,分解输出的过程,同时也就满足了按序排列的过程。