zoukankan      html  css  js  c++  java
  • 【C/C++】任意大于1的整数分解成素数因子乘积的形式

    //

     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<malloc.h>
     4 int isprime(long n);
     5 void decompose_to_primes(int n);
     6 int main()
     7 {
     8     decompose_to_primes(3);
     9     return 0;
    10 }
    11 
    12 void decompose_to_primes(int n)
    13 {
    14     int num;
    15     int *prime[2];
    16     int pi=0;
    17     int temp,i,j,exp;
    18     temp=(int)sqrt(n);
    19     num=temp;
    20     prime[0]=(int*)malloc(num*sizeof(int));
    21     prime[1]=(int*)malloc(num*sizeof(int));
    22     if(n<4)// n==2 or n==3
    23     {prime[0][0]=n;prime[1][0]=1;pi++;}
    24     for(i=2;i<=temp;i++)
    25         if(isprime(i))
    26         {
    27             exp=0;
    28             j=i;
    29             while(n%j==0 && j<=n)
    30             {exp++;j*=i;}
    31             j/=i;
    32             //if(exp)
    33             {prime[0][pi]=i;prime[1][pi]=exp;
    34             pi++;
    35             n/=j;
    36             }          
    37         }
    38         //output primefactors whose exp!=0
    39         for(i=0;i<pi;i++)
    40             if(prime[1][i]!=0)
    41                 printf("<%d,%d> ",prime[0][i],prime[1][i]);
    42             printf("
    ");
    43             free(prime[0]);
    44             free(prime[1]);
    45 }
    46 
    47 int isprime(long n)
    48 {
    49     int bound;
    50     int i;
    51     bound=(int)sqrt(n);
    52     for(i=2;i<=bound;i++)
    53         if(n%i==0)
    54             return 0;
    55         return 1;
    56 }
  • 相关阅读:
    BugKu web 矛盾
    BugKu 域名解析
    Dummy game
    BugKu 变量1
    BugKu web5
    递归算法
    Django进阶(转载)
    centos 7防火情配置
    cenos7切换阿里源
    centos7 编译安装nginx
  • 原文地址:https://www.cnblogs.com/wxiaoli/p/5336050.html
Copyright © 2011-2022 走看看