首页 > 其他分享 >求某一个范围内完数的个数

求某一个范围内完数的个数

时间:2023-04-27 22:11:33浏览次数:26  
标签:语句 int 个数 因子 循环 完数 范围

如果一个数等于它的因子之和,则称该数为完数,例如“6”的因子为1,2,3,而6=1+2+3,因此6是完数

问题分析:

假设一个数d,然后计算出它的每个因子,用到for循环,假如是a,b,c,然后进行一个判断如果a+b+c=d,就说明d是完数,应该要用到两层循环,最外层循环从2开始,一直到d,内层循环从1开始,一直到a,然后开始取余,如果等于0,就说明是它的因子。

也就是

for (a = 2; a <= d; a++)
    {
        c = 0;//这里是要循环时c的值为0
        for (b = 1; b < a; b++)
        {
            if (a % b == 0)//看看b是不是a的因子
                c += b;
        }

if语句判断一下,这个if语句在for循环里,每个完数都会输出

if (a == c)
        {
            cout << a<<endl;//直接输出a
        }

完整的就是

#include<iostream>
using namespace std;
int main()
{
    int a, b, c, d;//a选定数范围,b除数范围,c是和
    cin >> d;//d输入范围的上限
    for (a = 2; a <= d; a++)
    {
        c = 0;
        for (b = 1; b < a; b++)
        {
            if (a % b == 0)//判断是不是因子
                c += b;
        }
        if (a == c)//因子的和与原数的大小比较
        {
            cout << a<<endl;
        }
    }
    return 0;
}

 

标签:语句,int,个数,因子,循环,完数,范围
From: https://www.cnblogs.com/lllyclh/p/17360380.html

相关文章

  • JavaScript获取两个数组的差集
    constarra=['a','b','c','d','e'];constarrb=['b','e'];console.log("some:"+arra.filter(v=>!arrb.some((item)=>item===v)));console.log("find:&quo......
  • 2022-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j
    2022-04-26:给定一个数组componets,长度为A,componets[i]=j,代表i类型的任务需要耗时j给定一个二维数组orders,长度为M,orders[i][0]代表i号订单下单时间orders[i][1]代表i号订单是哪种类型的任务,毫无疑问orders[i][1]<A一开始所有流水线都在0时刻待命,给定一个正数nums,表示流水......
  • leetcode-350-两个数组的交集 II 题解
    题目给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2,2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果......
  • 466. 统计重复个数
    统计重复个数定义str=[s,n]表示str由n个字符串s连接构成。例如,str==["abc",3]=="abcabcabc"。如果可以从s2中删除某些字符使其变为s1,则称字符串s1可以从字符串s2获得。例如,根据定义,s1="abc"可以从s2="abdbec"获得,仅需要删除加粗且用斜体标识的字符......
  • 区间和的个数
    给你一个整数数组nums以及两个整数lower和upper求数组中,值位于范围[lower,upper](包含lower和upper)之内的区间和的个数一.前缀和+双重循环(超时)classSolution{public:intcountRangeSum(vector<int>&nums,intlower,intupper){intn=nums.s......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集 、 202.
    ......
  • element中datetimerange限制时间的选择范围
    <el-date-pickerv-model="Hour"type="datetimerange":picker-options="pickerOptions"range-separator="-"format="yyyy-MM-ddHH"value-format="yyyy-MM-ddHH"start-placehold......
  • ABAP查询界面日期范围未选择值,则查询前一天的数据
    包含TOP的查询条件:SELECT-OPTIONS:p_bldatFORekbe-bldat."凭证日期包含FORM的代码:RANGES:date_rangeFORekbe-bldat.IFp_bldat[]ISINITIAL.date_range-sign='I'.date_range-option='BT'.date_range-low=sy-datum-1.da......
  • 已知n个数的入栈序列,求一共有多少种出栈序列 (卡特兰数)
    已知\(n\)个数的入栈序列,求一共有多少种出栈序列这个经典问题有两种解法。解法一:设\(f(x)\)为\(x\)个数入栈后,再全部出栈的序列数量假设我们有\(4\)个数\(a,b,c,d\),我们来看\(a\)的出栈顺序.假如\(a\)第一个出栈,那么后面还有\(3\)个数没有出栈,因此方法数是\(f(3)\).假设\(......
  • 各个数据库的特点
     redis(频繁访问的数据,缓存在redis当中,访问速度得到提升,响应速度也得到提升) mongoDB(存储大数据量的数据,大数据量的访问性能提升) elasticsearch(复杂的搜索功能) neo4j(比较复杂的关系数据,比较直观的看到数据) ......