C语言程序,求一个数的分解因数

/* 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"
#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);
}
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-08-09
不是分解质因数,对吗?
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#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);
}
}
}
第2个回答  2011-10-27
#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");
}本回答被提问者采纳

C语言程序,求一个数的分解因数
dd(i,n\/i);t=t-1;dd(i+1,j);} else { dd(i+1,j);} } }

【求助啊】分解因式 c语言
为节约空间,先估计一个不太大的因数个数的上限,最简单的方法就是找到所给整数a(不妨假定为正整数)的最小素因数,设为b1,令n=[log_b1 (a)](以b1为底的a的对数取整,用C语言表示为n=(int)(log(1.0*a)\/log(b1*1.0))。如果要精确一点,以节省空间(特别是当a比较大时,这是必须的),可以先找出所有素因子...

c语言将一个正整数分解质因数,望高手帮我详细解释一下程序?
1、首先打开vc6.0, 新建一个vc项目,添加头文件。2、添加main主函数,如下图所示。3、然后定义 n, i 两个变量,如下图所示。4、接着使用scanf给n赋值,使用for循环。5、然后用while作为内层循环,使用printf打印i。6、最后使用if条件语句,运行程序,如下图所示,正整数分解为质因子就完成了。

c语言如何将一个正整数分解成质因数?
include<stdio.h>void main(){int a,n; scanf("%d",&n);printf("n="); for(a=2;a<=n;a++)if(n%a==0){n\/=a;printf("%d",a);printf("*");a=1;}}输入编码即可。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M....

用c语言将一个正整数分解成质因数的乘积
在printf("*"); 之前加上if(n!=1) 就行了。n等于1就是已经整除完了,不用打*号了

C语言编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3...
"%d",&n)!=1 || n<1){\/\/输入并限制大于0printf("Input error, exit...\\n");return 0;}printf("\\n%d = ",n);for(i=2;n>1;){\/\/分解质因数,i从2开始if(n%i==0){\/\/能被i整除则输出因数iprintf("%d",i);if((n\/=i)>1)\/\/未到最后一个因数则输出一个*号printf("...

C语言算法之分解质因数
求出区间[a,b]中所有整数的质因数分解。输入 输入两个整数a,b。输出 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)。样例输入 3 10 样例输出 3=3 4=2*2 5=5 6=2*3 7=7 8=2*2*2 9=3*3 10=2*5 蓝桥杯 include<stdio.h>...

输入一个整数n(2≤n≤10000),对其分解质因数。 输出样例: 120=2*2*...
C语言实现一个整数的质因数分解,参考代码如下:include "stdio.h"int main(){ int n,i,fac=1; scanf("%d",&n); if(n<2||n>10000) return 0; printf("%d=",n); while(n>1) { for(i=2; i<=n; i++) if(n%i==0) { fac=i; break; }...

C语言如何求出一个数的“因数”求源代码
include<stdio.h>main(){ int n, i; scanf("%d", &n); printf("%d = ", n); for(i = 2; n != 1; i++) { while(n % i == 0) { n \/= i; printf("%d%c", i, n == 1 ? '\\n' : '*'); } }} ...

c++\/c语言因式分解
而判断一个数b是不是另一个数a的因式必须符合两个标准,一是a必须能被b整除;二是b必须是质数。根据以上思路,代码如下:(为了简化程序,这里把判断是否质数和分解因式都分别做成一个独立的函数)【程序代码】#include <iostream> \/\/控制台操作头文件#include <math.h> \/\/数学函数头文件 \/\/...

相似回答