susu.c

来自「任意合数分解成质数的程序」· C语言 代码 · 共 67 行

C
67
字号
//任意合数分解成质数程序:
#include"stdio.h"
#include"math.h"
int count;
void susu(int n,int *p)
{
     int num,i,m,b[10000],num1=0;
     for(num=2;num<=n;num++)
     {
      m=1;
      for(i=2;i<num;i++)
       {
if(!(num%i))
 {m=0;}
}
      if(m)
      { p[num1]=num;
num1++;
       }
      }
    for(i=0;i<num1;i++)
      b[i]=p[num1-1-i];
    for(i=0;i<num1;i++)
       p[i]=b[i];
}
void find(int n,int *pp,int *pr)
{
    if(n==1)
    { *pr=1;
       count++;
    }
    else
    {
      while(1)
      {
       if(n%*pp==0) break;
       pp++;

       }
       if(n<*pp)  find(n,pp+1,pr);
       else
       {
*pr=*pp;
count++;
n/=*pp;
find(n,pp,pr+1);
       }
    }
}
void main()
{
   int i,n,result[100],a[10000],*p=a;
   printf("please input a number");
   scanf("%d",&n);
   susu(n,p);
   find(n,p,result);
   printf("the result is: %d=",n);
   for(i=0;i<count;i++)
   {if(result[i]==1)
     printf("%d",result[i]);
    else
     printf("%d*",result[i]);
   }
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?