描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围:1≤n≤2×10^9+14
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:
180
输出:
2 2 3 3 5
#include<stdio.h>
int main()
{
long int a;
int b;
scanf("%ld", &a);
for(int i = 2; i < a/2 +1; i++){
if(i > sqrt(a)){
i = a;
}
while ( a%i == 0)
{
printf("%d ",i);
a = a/i;
}
}
if(a != 1){
printf("%ld",a);}
return 0;
}
// 总结:一开始边界条件没有设置好,没有考虑到输入的数就是素数的情况 if里的