【C语言】求1000以内的“完数”,并打印!超详细!必备技能!一看就会!

完数定义:

一个数恰好等于它的因子之和,这个数就称为“完数”

求1000以内的完数;

总代码 (未修饰):

#include <stdio.h>
int main()
{
	
	int i = 0;
	for (i = 2; i <= 1000; i++)
	{
		int sum = 0;
		int j = 0;

		for (j = 1; j < i; j++)
		{
			if (i % j == 0)
				sum += j;
		}

		if (sum == i)
		{
			printf("%d\n", i);

		int k = 0;
		for (k = 1; k < i; k++)
		{

			if (i % k == 0)
			{
				printf("%d\n", k);
			}

		}

		}
	
	}
	
	return 0;
}

//制作不易,希望一键三连,点个关注不迷路!

以上分为二个部分

一,输出完数;

二,输出完数的因子;

三,稍加修饰;

一,输出完数:

代码:

#include <stdio.h>
int main()
{
	
	int i = 0;
	for (i = 2; i <= 1000; i++)
	{
		int sum = 0;
		int j = 0;

		for (j = 1; j < i; j++)
		{
			if (i % j == 0)
				sum += j;
		}

		if (sum == i)
		{
			printf("%d\n", i);

		}
	
	}
	
	return 0;
}

//制作不易,希望一键三连,点个关注不迷路!

运行结果:

 那100以内就成功了,不过叫简略,后续在修饰;

二,输出完数的因子;

代码:

int k = 0;
for (k = 1; k < i; k++)
{

	if (i % k == 0)
	{
		printf("%d\n", k);
	}
}

//制作不易,希望一键三连,点个关注不迷路!

i 就为选出的完数,关键是这一部分放在哪,有的宝子也写出来了,但位置放错了,导致错误,正确位置:

 放在if()语句里面,因为if()语句中刚打印出完数i,故顺便求其因子,加完之后看结果:

运行结果

这个结果基本就结束了,但是还可以更加有观赏性;

三,稍加修饰;

可以加几句(自由发挥)让代码有观赏性,使结果为:

 

添加部分:

 

在if()语句里加两句printf()语句

总代码(修饰后):

#include <stdio.h>
int main()
{
	
	int i = 0;
	for (i = 2; i <= 1000; i++)
	{
		int sum = 0;
		int j = 0;
		for (j = 1; j < i; j++)
		{
			if (i % j == 0)
				sum += j;
		}
		if (sum == i)
		{
			printf("1000以内%d是完数\n", i);      //新加的代码

		int k = 0;
		printf("它的因子为\n");                   //新加的代码
		for (k = 1; k < i; k++)
		{
                
			if (i % k == 0)
			{   
				printf("%d\n", k);
			}
		}

		}
	}
	
	return 0;
}

//制作不易,希望一键三连,点个关注不迷路!

 四,小结;

以上就是关于完数的求法,具体还需要宝子们去实践,如果觉得该内容对你有用的话,还望点赞支持,有问题的宝子们私聊我,一一解答;

  • 36
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坊钰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值