当前位置:首页 » 编程语言 » c语言求因数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求因数

发布时间: 2022-01-19 11:31:51

‘壹’ c语言分解质因数

这样注释的已经很好了啊
if(m%k!=0),说明还没找到因数,每次都是从2开始,逐渐递增,来找因数的
else,else部分,说明已经找到了因数,找到因数以后,先把因数打印出来,然后让m等于被除后的数,让k=2,也就是从2开始,继续递增找其他的因数啊

举个例子,你就明白了,比如15,你要对它进行分解质因数,该怎么做呢
先让k=2,发现15%2!=0了,说明2不是它的因数,让k++
k=3的时候,发现15%3==0了,说明3是它的一个因数,打印出3,让m=15/3=5,让k=2
5%2!=0,5%3!=0,5%4!=0,说明2,3,4,都不是5的因数,k继续自加
k=5,5%5==0了,说明5是5的因数,所以,打印5,m=5/5=1,k=2,这时,就会退出for循环了

逐行分析,见下面:
if(m%k!=0) //m不能被k整除,说明k不是m的因数
{
k++; //就让k自加1,判断下一个数是不是m的因数
}
else //m不能被k整除,说明k是m的一个因数
{
printf("%d*",k); //把这个因数k,打印出去
m=m/k; //从m中把因数k去掉,如果不去掉,下一个又会找到因数k的,那样就不对了
k=2;//让k重新等于2,也就是重新从2开始找m的因数
}

‘贰’ C语言怎样高效求一个数的所有因数的和

参考代码如下
#include<stdio.h>
int main()
{
int i,n,b;
long sum=0;
scanf("%d",&n);
sum=n;
printf("所有因数:");
for(i=1;i<=n/2;++i)
if(n%i==0){
printf("%d ",i);
sum+=i;
}
printf("%d ",n);
printf("\nsum=%d ",sum);
return 0;
}

‘叁’ 求一个整数的因数和 的C语言程序代码

C语言实现,参考代码如下:

#include<stdio.h>
intmain()
{
intn,i,sum=0;
scanf("%d",&n);
if(n<1)return0;
for(i=1;i<=n;++i)
if(n%i==0)
sum+=i;
printf("因数之和为%d",sum);
return0;
}

‘肆’ C语言 求分解质因数

大略看了下,代码打的时候就很多错误,你是不是把i打成1了?

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

不是分解质因数,对吗?
分解质因数简单,分解因数要难些,利用回溯可以做,以下是我写的代码,看一看是否是你想要的。
#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);
}
}

}

‘陆’ c语言输出一个数的所有因数

从数学定义可以得知,一个数的因数范围在1到该数本身。所以只需要从1到该数遍历,逐个尝试模除,可以整除的则为因数,将所有符合条件的数打印即可。

代码如下:

#include<stdio.h>
intmain()
{
intn,i;
scanf("%d",&n);//输入要输出因数的值。
for(i=1;i<=n;i++)
{
if(n%i==0)printf("%d,",i);//输出因数。
}

return0;
}

‘柒’ C语言如何求出一个数的“因数”求源代码

#include<stdio.h>
intmain(void)
{
intx,i=2;
printf("请输入一个整数:");
scanf("%d",&x);
while(i<=x)
{
if(x%i==0)
{
printf("%d",i);
x=x/i;
i=2;
}
else
i++;
}
return0;
}

‘捌’ 求一个数的质因数。c语言编程

这个问题,首先,用筛选法找出质素,然后,遍历这个素以内的所有素数,找到质因数!
#include <stdio.h>
#define MAX 1001
char a[MAX];
int main()
{
int i,j;
for(i = 2; i < MAX; i++)
{
if(a[i] == 0)
for(j = i+i; j < MAX; j += i)
a[j] = 1;
}
int n;
printf("Please enter a number:\n");
scanf("%d",&n);
for(i = 2; i <= n/2; i++)
{
if(a[i] == 0)
{
if(n % i == 0)
printf("%d ",i);
}
}
printf("\n");
}

‘玖’ c语言求分解质因数

有这样几个问题:

  1. 声明的二维数组是aaa,但代码中应用时又变成了a,会产生a未定义错误。

  2. int aaa[3][100000];数组太大,建议使用全局变量或动态数组;改成int a[3][1000];更好。

  3. a[3][z]=a[1][j];这里和jj=a[3][z]*1;这里数组a都越界了。声明的a第一维是3,即0、1、2,不可能有[3]。

    把这些错误改了再说。