在2~n-1之间找出n的两个因数(不一定是质因数)i和j,即i * j = n;
如果i是质数,则j必须是n的一个质因数,否则继续对j进行质因数分解。
如果j是质数,则i必须是n的一个质因数,否则继续对i进行质因数分解。
#include <stdio.h>
2:
int a)
4: {
int i;
for (i=2; i<a-1; i++)
7: {
if (a % i == 0)
9: {
return 0;
11: }
12: }
13:
return 1;
15: }
16:
int n)
18: {
int i;
if (IsPrime(n))
, n);
else
23: {
for (i=2; i<n-1; i++)
25: {
if (n % i == 0)
27: {
, i);
if (IsPrime(n / i))
30: {
, n / i);
break;
33: }
else
35: PrimeFactor(n / i);
break;
37: }
38: }
39: }
40: }
41:
int main()
43: {
int n;
);
, &n);
47: PrimeFactor(n);
return 0;
49: }