当前位置:首页 » 编程语言 » c语言完数输出因子

c语言完数输出因子

发布时间: 2022-12-30 02:31:48

1. c语言编程:找出200以内所有完数,并输出其因子 例如输出6=1+2+3

#include <stdio.h>

int Perfect(int);
void PerfectShow(int,int);

void main()
{
int num=200;
int judge=0,i;
for(i=0;i<=200;i++)
{
judge=Perfect(i);

if(judge>1)
{
PerfectShow(i,judge);
printf("\n");
}
}

getch();
}

int Perfect(int num)
{
int max,sum=0;
int i;
for(i=1;i<num;i++)
{
if(num%i==0)
{
max=i;
sum=sum+i;

}
if(sum==num)
{
return max;
}
else
{

}
}
return 1;
}

void PerfectShow(int num,int max)
{
int out,i;
printf("%d = ",num);
for(i=1;i<num;i++)
{
if(num%i==0)
{
printf("%d",i);
if(i==max)
{
return;
}
else
printf("+");
}
}

}

2. 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;
}

3. 如何用 C语言 输出一个整数的因子

假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,我们称n为m的倍数 。


如果利用C语言求一个整数n的因子,可以从1开始到n,依次加1,如果它是n的的因子,则输出。


具体的源码实现如下:
#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv[])
{
intn;
while(scanf("%d",&n)!=EOF)
{
if(n<1)break;
inti;
for(i=1;i<=n;i++)
{
if(n%i==0)
printf("%d",i);
}
printf(" ");
}
return0;
}

编译运行后的结果:

4. c语言:列出完数及其因子

#include <stdio.h>
#include <conio.h>

void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0

for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加

if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}

getch();
}

运行结果:
6 28 496
请参考

5. 用c语言求1000之内的完数 要求输出完数的因子

#include "stdio.h"

//判断n是否是完数
bool isWanShu(int n)
{
int sum=0, j;
for(j=1;j<n;j++)
{
if(0==n%j) sum+=j;
}
if(sum==n) {
printf("%d 是完数, ", n);
return true;
} else {
return false;
}
}
//输出整数的n的因子(自身除外)
void printFactor(int n)
{
int i;
printf("%d 的因子: ", n);

for(i=1; i<n; i++) {
if(n%i==0) printf("%d ", i);
}
printf("\n");
}
int main()
{
int i;
for(i=1; i<=1000; i++) {
if ( isWanShu(i)) { //如果i是完数,则输出它的因子。
printFactor(i);
}
}
return 0;
}

输出结果:
6 是完数, 6 的因子: 1 2 3
28 是完数, 28 的因子: 1 2 4 7 14
496 是完数, 496 的因子: 1 2 4 8 16 31 62 124 248

6. c语言完数输出因子

#includeintyinzi(intn);intwanshu(intn);intmain(){inti;for(i=1;i

7. 编写一段C语言程序,功能为:找出1000之内的所有完数,并按下面格式输出其因子。

#include <stdio.h>


int main()

{

int i,j,sum;

for(i=2;i<1000;++i)

{

for(j=1,sum=0;j<i;++j)

{

if(i%j==0)

{

sum+=j;

}

}

if(sum==i)

{

printf("%d: its factors are 1",i);

for(j=2;j<i;++j)

{

if(i%j==0)

{

printf(",%d",j);

}

}

printf(" ");

}

}

return 0;

}

8. 编程找出1000以内的所有完全数,并输出使该数成为完全数的因子。(c语言)

完数是大于等于1、小于自身的所有因子之和与自身相等的数。先求因子之和,再与其比较,相等时再由小到大求各因子依次输出,并在之间用'+'连接起来。举例代码如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
intn,m,i,t;
for(n=6;n<=1000;n+=2){
for(m=1,t=n>>1,i=2;i<=t;i++)//求所有因子之和
if(n%i==0)
m+=i;
if(m==n){//因子和与自身比较是否相等
printf("%4d=1",n);
for(i=2;i<=t;i++)//若相等则再求因子并输出
if(n%i==0)
printf("+%d",i);
printf(" ");
}
}
return0;
}

9. C语言函数输出完数和因子

这是我编写的 你编写的 要注意 每次进行外循环都要把 s初始化为 0 否则就是用上一次的值

#include <stdio.h>
int main()
{
int i,j,n,sum;
printf("请输入一个数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("完数为:%d\t它的约数是:",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%4d",j);
printf("\n");
}
}
return 0;
}

热点内容
日本溥仪访问 发布:2025-07-03 04:24:27 浏览:672
java文件遍历 发布:2025-07-03 04:22:22 浏览:139
android画虚线 发布:2025-07-03 04:11:04 浏览:384
系统启动密码怎么取消 发布:2025-07-03 04:08:06 浏览:746
python程序设计第三版课后答案 发布:2025-07-03 03:58:08 浏览:213
socket上传文件 发布:2025-07-03 03:57:24 浏览:895
安卓cleo脚本 发布:2025-07-03 03:41:26 浏览:245
编程器解读 发布:2025-07-03 03:22:49 浏览:24
中国电信加密通信业务 发布:2025-07-03 03:06:00 浏览:521
脚本家的台词 发布:2025-07-03 03:05:50 浏览:709