题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include<stdio.h>
//long int n
//质因子分解P1^ P2^ P3^找到一个p之后除尽
//这样可能剩个大质数或者1 大质数输出
int isprime(int n);
int main()
{
long int n;
scanf("%ld",&n);
for(int i=2;i*i<=n;i++)
while(n%i==0)
{
printf("%d ",i);
n = n/i;
}
if(n!=1)
printf("%d ", n);
return 0;
}
int isprime(int n)
{
int ret = 1;
if ((n % 2 == 0 && n != 2) || n == 1)
ret = 0;
else
for (int i = 3; i <= sqrt(n); i += 2)
if (n % i == 0)
{
ret = 0;
//这里可以break跳出减少循环次数
break;
}
return ret;
}