死幽亡灵 发表于 2015-3-12 08:46:20

递归素数因子分解

#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
int gdr(int n,int i)
{ int j;
while(1)
{
while(n%i==0)
{
   for(j=2;j<=i;j++)
   {
    if(i%j==0)
   break;
   }
   if(i==j)
   {
    return i;/*确定能否被i整除并确定i是一个素数*/
   }
   
}
i++;

}
}
void sushu(int n,int j)
{
j=gdr(n,j);
n/=j;
if(n!=0)
    sushu(n,j);
printf("*%d",j);   /*这个地方求改正*/
}
int main()
{
int n,i=2;
printf("please input number:\n");
scanf("%d",&n);
sushu(n,i);
}
对递归不太懂,请大神指教,没什么bb

仰望天上的光 发表于 2015-3-12 08:46:21


#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
int gdr(int n,int i)
{
        int j;
        while(1)
        {
                while(n%i==0)
                {
                        for(j=2;j<=i;j++)
                        {
                                if(i%j==0)
                                        break;
                        }
                        if(i==j)
                        {
                                return i;/*确定能否被i整除并确定i是一个素数*/
                        }
                       
                }
                i++;
               
        }
}
void sushu(int n,int j)
{
        if( n>1 ) { //递归结束条件
                j=gdr(n,j);
                n/=j;

                printf("%d%s",j,(n>1)?"*":"");
                if(n!=0)
                        sushu(n,j);
                //printf("*%d",j);   /*这个地方求改正*/
        }
}
int main()
{
        int n,i=2;
        printf("please input number:\n");
        scanf("%d",&n);
        sushu(n,i);
}

死幽亡灵 发表于 2015-3-12 19:01:10

受教了,谢谢

haiouda 发表于 2015-3-12 23:03:42

学习了
页: [1]
查看完整版本: 递归素数因子分解