# 求指定范围内的完数个数

本文介绍了如何使用C语言编写代码来判断给定两个正整数之间的完数个数,通过双重循环遍历数和其因子,检查因子之和是否等于该数。
摘要由CSDN通过智能技术生成

求指定范围内的完数个数

一、完数的定义及题目要求:
如果一个大于 1 的正整数的所有因子之和等于它的本身,则称这个数是完数,比如 6,28 都是完数:6=1+2+3;28=1+2+4+7+14。请判断两个正整数之间完数的个数。

题目分析:

1.首先要用循环遍历范围内的所有数,再加一个循环遍历范围内的每一个数的因子。方法:从一开始若对其本身求余等于0,则是因子。
2.找完一个数的因子后将其因子加起来若等于其本身,则这个数是完数,一直循环直至循环结束。

代码实现(含解析):

#include<stdio.h>
	int main(void)
	{
	  int m,n;
	  scanf("%d%d",&m,&n);//手动输入范围
	  int sum=0,count=0;
    for(int i=m;i<=n;i++){
        sum=0;            //每次计算完一个数,sum都要归0进行下一个数的计算
        for(int j=1;j<i;j++)
        {
          if(i%j==0)//对i求取余数若余数为0,则是其因子
          {
              sum+=j;
          }
        }
          if(sum==i)//若因子相加等于其本身,则是完数
          {
		  count++;//个数加一
          }
   } printf("%d",count);
       return 0;
	}

以上就是关于完数个数的实例解析。如果对你有帮助,记得点赞+关注哦!\n我的主页还有其他文章,欢迎学习指点。关注我,让我们一起学习,一起进步吧!

守其初心,始终不变。——苏轼!

今天的你也要格外努力格外优秀哦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值