完全数计算

it2022-05-05  156

链接:https://www.nowcoder.com/questionTerminal/7299c12e6abb437c87ad3e712383ff84 来源:牛客网

       完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。        例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。        给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围, 0 < n <= 500000 返回n以内完全数的个数。 异常情况返回-1 【题目解析】        审题即可 【解题思路】        n每次对数字1~n-1取余数,为0就累加,循环n次,千万记得对于多次累加的变量在后面记得清0,否则会出错;

#include<iostream> using namespace std; int count(int n){ int add=0; int sum=0; while(n!=0){ for(int i=1;i<n;i++){ if(n%i==0) sum+=i; else continue; } if(sum==n) add++; n--; sum=0; } if(n==0) return add; return -1; } int main(){ int num; int ret=0; while(cin>>num){ ret=count(num); cout<<ret<<endl; } }

最新回复(0)