C语言 因式分解
答案:2 悬赏:80 手机版
解决时间 2021-01-24 20:42
- 提问者网友:孤山下
- 2021-01-24 06:05
C语言 因式分解
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-01-24 06:32
#include
int first(int n)//函数功能为找到第一个因子。
{
int r=2;
while(n%r) r++;
return r;
}
int main()
{
int n;
int a;
scanf("%d",&n);
a=first(n);
printf("%d=%d",n,a);
n/=a;
while(n!=1)
{
a=first(n);
printf("*%d", a);
n/=a;
}
printf("
");
return 0;
}
int first(int n)//函数功能为找到第一个因子。
{
int r=2;
while(n%r) r++;
return r;
}
int main()
{
int n;
int a;
scanf("%d",&n);
a=first(n);
printf("%d=%d",n,a);
n/=a;
while(n!=1)
{
a=first(n);
printf("*%d", a);
n/=a;
}
printf("
");
return 0;
}
全部回答
- 1楼网友:不如潦草
- 2021-01-24 07:19
#include
#include
#include
unsigned int m=2;
unsigned int cnt=1;
void Factor(int n, char *msg, char printYes);
int main()
{
char s[100]={0};
char flag='y';
printf("------求整数的因式分解------ 请输入正整数m(>1):");
scanf("%u", &m);
printf("打印详细分解情况吗?[y|n,回车打印]");
scanf("%*c%c",&flag);
if(m<1)
{
printf("error input! ");
exit(-1);
}
if(flag!='n')
printf("%d = %d ", m,m);
Factor(m, s,flag);
if(cnt==1)
printf(" %d是素数 ",m);
printf(" ------");
printf("一共有%d种", cnt);
printf("------ ");
return 0;
}
void Factor(int n, char *msg,char printYes)
{
char s2[100]={0};//保存当前分解的部分结果
if(n==1)
return ;
for(int i=2;i {
if (n%i==0)
{
if(n==m)
sprintf(msg, "%d = ", m);
sprintf(s2,"%s %d * ",msg, i);//因式分解部分结果保存在字符串s2中
if(printYes!='n')
printf("%s %d ",s2,n/i);//打印结果(包括最后一个因子)
Factor(n/i,s2,printYes);
cnt++;
}
}
}
#include
#include
unsigned int m=2;
unsigned int cnt=1;
void Factor(int n, char *msg, char printYes);
int main()
{
char s[100]={0};
char flag='y';
printf("------求整数的因式分解------ 请输入正整数m(>1):");
scanf("%u", &m);
printf("打印详细分解情况吗?[y|n,回车打印]");
scanf("%*c%c",&flag);
if(m<1)
{
printf("error input! ");
exit(-1);
}
if(flag!='n')
printf("%d = %d ", m,m);
Factor(m, s,flag);
if(cnt==1)
printf(" %d是素数 ",m);
printf(" ------");
printf("一共有%d种", cnt);
printf("------ ");
return 0;
}
void Factor(int n, char *msg,char printYes)
{
char s2[100]={0};//保存当前分解的部分结果
if(n==1)
return ;
for(int i=2;i
if (n%i==0)
{
if(n==m)
sprintf(msg, "%d = ", m);
sprintf(s2,"%s %d * ",msg, i);//因式分解部分结果保存在字符串s2中
if(printYes!='n')
printf("%s %d ",s2,n/i);//打印结果(包括最后一个因子)
Factor(n/i,s2,printYes);
cnt++;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯