
C语言程序,求一个数的分解因数
/*Note:YourchoiceisCIDE*/#include"stdio.h"voidmain(){inta,i;scanf("%d",&a);for(i=2;i<...
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a,i;
scanf("%d",&a);
for(i=2;i<=a;i++)
{while(a!=i)
{if(a%i==0){printf("%d*",i);}
else
break;}}
printf("%d",a);
} 展开
#include "stdio.h"
void main()
{
int a,i;
scanf("%d",&a);
for(i=2;i<=a;i++)
{while(a!=i)
{if(a%i==0){printf("%d*",i);}
else
break;}}
printf("%d",a);
} 展开
3个回答
展开全部
不是分解质因数,对吗?
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
typedef int Integer[100];
Integer s;
int t=0;
int D;
void dd(int m,int n);
void main()
{
printf("输入一个大于3的正整数:");
do
{
scanf("%d",&D);
if(D<=3)
{
printf("输入错误,请重新输入!");
}
else
{
break;
}
}while(D>3);
dd(2,D);
}
void dd(int m,int n)
{
int i,j,k;
i=m;
j=n;
if(i<=j/i)
{
if(j % i==0)
{
t=t+1;
s[t]=i;
for(k=1;k<=t;k++)
{
printf("%d*",s[k]);
}
printf("%d=%d\n",j/i,D);
dd(i,n/i);
t=t-1;
dd(i+1,j);
}
else
{
dd(i+1,j);
}
}
}
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
typedef int Integer[100];
Integer s;
int t=0;
int D;
void dd(int m,int n);
void main()
{
printf("输入一个大于3的正整数:");
do
{
scanf("%d",&D);
if(D<=3)
{
printf("输入错误,请重新输入!");
}
else
{
break;
}
}while(D>3);
dd(2,D);
}
void dd(int m,int n)
{
int i,j,k;
i=m;
j=n;
if(i<=j/i)
{
if(j % i==0)
{
t=t+1;
s[t]=i;
for(k=1;k<=t;k++)
{
printf("%d*",s[k]);
}
printf("%d=%d\n",j/i,D);
dd(i,n/i);
t=t-1;
dd(i+1,j);
}
else
{
dd(i+1,j);
}
}
}
展开全部
不是分解质因数,对吗?
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#include
"stdio.h"
#include
"stdlib.h"
#include
"ctype.h"
typedef
int
Integer[100];
Integer
s;
int
t=0;
int
D;
void
dd(int
m,int
n);
void
main()
{
printf("输入一个大于3的正整数:");
do
{
scanf("%d",&D);
if(D<=3)
{
printf("输入错误,请重新输入!");
}
else
{
break;
}
}while(D>3);
dd(2,D);
}
void
dd(int
m,int
n)
{
int
i,j,k;
i=m;
j=n;
if(i<=j/i)
{
if(j
%
i==0)
{
t=t+1;
s[t]=i;
for(k=1;k<=t;k++)
{
printf("%d*",s[k]);
}
printf("%d=%d\n",j/i,D);
dd(i,n/i);
t=t-1;
dd(i+1,j);
}
else
{
dd(i+1,j);
}
}
}
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#include
"stdio.h"
#include
"stdlib.h"
#include
"ctype.h"
typedef
int
Integer[100];
Integer
s;
int
t=0;
int
D;
void
dd(int
m,int
n);
void
main()
{
printf("输入一个大于3的正整数:");
do
{
scanf("%d",&D);
if(D<=3)
{
printf("输入错误,请重新输入!");
}
else
{
break;
}
}while(D>3);
dd(2,D);
}
void
dd(int
m,int
n)
{
int
i,j,k;
i=m;
j=n;
if(i<=j/i)
{
if(j
%
i==0)
{
t=t+1;
s[t]=i;
for(k=1;k<=t;k++)
{
printf("%d*",s[k]);
}
printf("%d=%d\n",j/i,D);
dd(i,n/i);
t=t-1;
dd(i+1,j);
}
else
{
dd(i+1,j);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void main()
{
int a,i;
scanf("%u",&a);
for(i=2; a != 1; i++ )
{
while ( a%i == 0 ) {
{
printf("%d",i);
if ( i != a ) {
printf("*");
}
a /= i ;
}
}
printf("\n");
}
void main()
{
int a,i;
scanf("%u",&a);
for(i=2; a != 1; i++ )
{
while ( a%i == 0 ) {
{
printf("%d",i);
if ( i != a ) {
printf("*");
}
a /= i ;
}
}
printf("\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询