当前位置:首页 » 编程语言 » c语言求因数

c语言求因数

发布时间: 2022-01-09 10:11:15

Ⅰ 求一个整数的因数和 的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语言

亲,你不需要这样,你可以用逆向思维:
从数的本身递减至2;
for(int i = a/2; i > 1; i--)
其中若满足i 为 a 的因数,就跳出循环,那么此时 i 就为 a 的最大因数。
而当 i = 1时,那说明它是个质数。

Ⅲ 求一个数的质因数。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语言 分解质因数

代码:

#include<stdio.h>
intmain()
{
inta[6555],i,j,t=1;
a[0]=2;
for(i=3;i<65540;i+=2)
{
for(j=2;j*j<=i;j++)
{
if(i%j==0)
break;
}
if(j*j>i)
{a[t]=i;t++;}
}
intn,n1,n2,x,y,f=0;
while(scanf("%d",&n)!=EOF)
{
x=0;
for(i=0;a[i]<=n;i++)
if(a[i]==n)
{
printf("%d=1*%d ",n,n);
x=1;
}
if(x==0){
printf("%d=",n);
for(i=0;a[i]<n;i++)
{
if(n%a[i]==0)
{
n=n/a[i];
printf("%d*",a[i]);
i--;
}
}
printf("%d ",n);}
}
return0;
}

思路就是求出所有素数,然后从素数 2 开始,找可以把n整除的素数,(每次都从素数2开始找,而且找到后要更新n的值)

Ⅳ 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"
#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语言求一个数的最大因数问题,这个因数数组应该怎么申请

亲,你不需要这么麻烦,因为输入的数没有限制,无法定义数组的大小;
你可以从数的本身向2递减;
for(int i = a/2; i > 1; i--)
然后判断某个i值是否为a 的因数,若是,则为最大因数。

Ⅷ 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>
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语言求分解质因数

有这样几个问题:

  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]。

    把这些错误改了再说。

热点内容
上传文件文件夹找不到 发布:2024-09-20 00:26:32 浏览:914
承台箍筋加密区 发布:2024-09-20 00:26:31 浏览:227
笔记本什么配置能流畅运行cf 发布:2024-09-20 00:14:19 浏览:951
实测华为编译器 发布:2024-09-19 23:50:52 浏览:821
linux汇总 发布:2024-09-19 23:46:39 浏览:452
阿里云服务器环境搭建教程 发布:2024-09-19 23:21:58 浏览:837
黄色文件夹图标 发布:2024-09-19 23:19:22 浏览:684
mysql数据库导出导入 发布:2024-09-19 23:00:47 浏览:183
lua脚本精灵 发布:2024-09-19 23:00:41 浏览:659
任务栏文件夹图标 发布:2024-09-19 22:54:25 浏览:101