质因数分解未完

来源:互联网 发布:linux查看文件命令大小 编辑:程序博客网 时间:2024/06/07 22:36
#include <stdio.h>#include <stdlib.h>#define MAX_N 60000#define MAX_ITEM 7500int primes[MAX_ITEM]= {0},numbers[MAX_ITEM]= {0};int gen_primes(int n,int *primes);void gen_factors(int n,int m,int *prime,int *num);void print(int m,int *primes,int *num);int main(){    int m,n;    printf("please Enter N:");    scanf("%d",&n);    if(n<2||n>MAX_N)    {        printf("N must be between 2 and %d\n",MAX_N);    }    else    {        m=gen_primes(n,primes);        gen_factors(n,m,primes,numbers);        print(m,primes,numbers);    }    return 0;}int gen_primes(int n,int *primes){    int i,j,k,num=0;    for(j=2; j<=n; j++)    {        for(i=2; i<=n; i++)            if(j%i==0)                break;        if(i==j)        {            primes[num]=j;            num++;        }    }    return num-1;}void gen_factors(int n,int m,int *prime,int *num){    int A,i,j;    A=n;    for(i=0; i<=m; i++)    {        if(A%primes[i]==0)        {            A=A/primes[i];            num[i]=num[i]+1;        }    }}void print(int m,int *primes,int *num){    int i;    for(i=0; i<=m; i++)    {        if(primes[i]!=0)        {            if(i!=m-1)            {                if(num[i]!=0)                    printf("%d^%d*",primes[i],num[i]);                else                    printf("%d*",primes[i]);                }            else            {                if(num[i]!=0)                    printf("%d^%d",primes[i],num[i]);                else                    printf("%d",primes[i]);            }        }    }}

0 0
原创粉丝点击