递归素数因子分解
#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
#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);
} 受教了,谢谢 学习了
页:
[1]