题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <stdio.h>
#include<math.h>
int main()
{
int i = 2, n = 0;
scanf("%d", &n);
//因为范围是左闭区间,包括1,看到很多解题者都漏掉了这一情况,不够严谨
if(n==1)
{
printf("1\n");
}
//判断到sqrt(n)就可以,因为此时n已经是素数,再往上判断没意义
for (i = 2; (i<=sqrt(n)); i++)
{
while (n % i == 0)
{
printf("%d ", i);
n /= i;
}
}
//循环结束如果n还没除尽,说明此时n是素数
if (n > 1)
{
printf("%d\n", n);
}
return 0;
}
