在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: }

相关文章: