统计n之内的完全数

题目描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数12471428,除去它本身28外,其余5个数相加,1+2+4+7+14=28

给定函数count(int n),用于计算n以内(n)完全数的个数。计算范围, 0 < n <= 500000

返回n以内完全数的个数。异常情况返回-1


输入1000

输出3


【代码】

  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. int main()
  5. {    
  6.    int n;
  7.    while(cin>>n) 
  8.    {
  9.        int count=0;
  10.        for(int i=1; i<=n; i++)
  11.        {
  12.            int sum=0;
  13.            for(int j=1; j<i; j++)
  14.            {
  15.               if(i%j==0)
  16.                sum += j;
  17.            }
  18.           if(sum==i)
  19.             count++;
  20.        }
  21.       cout<<count<<endl;
  22.    }
  23.  return 0;
  24. }

*************** 相关***********

  判断完全数


  

  1.  void wanquanshu(int num)
  2.   {   
  3.         int sum=0;
  4.        for(int i=1; i<num; i++)
  5.         {
  6.           if(num%i==0)            //其实就是各素数之和
  7.            sum += i;
  8.         }
  9.       if(sum==num) cout<<"YES"<<endl;
  10.       else   cout<<"NO"<<endl;
  11.    }
  12.  return 0;
  13. }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

屠变恶龙之人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值