题意:输出所给数所有的素数因子
思路:所有数都可以由素数相乘而得到,所以只要一直对一个数求余,直到余数为0,就证明所要分解的数中再无这个素数。
例如:4 = 2 * 2, 6 = 2 * 3, 8 = 2 * 2 * 2,所有的数都可以由素数相乘而得。
#include<stdio.h>
int main(){
long long n;
while (scanf("%lld", &n) && n > 0){
for (int i = 2; i < 1000000; i++){
while (n % i == 0){
n /= i;
printf(" %d\n", i);
}
if (n == 1){
printf("\n");
break;
}
}
if (n != 1)
printf(" %lld\n\n", n);
}
return 0;
}