HWOJ 完全数计算
题目:
完全数计算
样例输入:1000
样例输出:3
题目分析:
算法思路:
①先用双循环找出这个数范围内每个数的的所有约数i%j == 0
②再去相加与本身数去比较,如果相等那么Number加1.
③这里需要注意每次sum必须从新赋值为1
==========================================================================
参考代码:
//.cpp #include <iostream> using namespace std; int PerfectNumber(int n) { //输入异常 while(n < 0 || n > 500000) return -1; int i,j; int Number = 0; int sum = 1; for(i = 2; i < n; i++) { for(j = 2; j < i;j ++) { if(i % j == 0) sum += j; } if(i == sum) { Number ++; } sum = 1; } return Number; } int main() { int n; cin >> n; cout << PerfectNumber(n) << endl; }
——To_捭阖_youth