C++编程解决数学问题,求大神!

题目描述
已知一个正整数N(20 <= N <= 1000000),请你编写程序求出该数的全部因子(不包括1和本身)的和。

输入
整数N

输出
一个整数(因子和)。

样例输入
24
样例输出
35

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
int main(int argc,char *argv[]){
int n;
cout << "Please enter n(int 19<n<10000001)...\nn=";
if(!(cin >> n) || n<21 || n>10000000){
cout << "Input error, exit...\n";
return 0;
}
for(int k=n>>1,sum=0,i=2;i<=k;i++)
if(n%i==0)
sum+=i;
cout << "The result is " << sum << " when n==" << n << endl;
return 0;
}

运行样例:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-30
#include <iostream>
using namespace std;

int getSum(int x)
{
    int sum = 0;
    for(int i = 2; i < x; ++i)
        //    亦可同时处理除数和商,比较麻烦,但能加快速度 
        if( x%i == 0 )
            sum += i;
    return sum;
}

int main()

    int N;
    cin >> N;    
    
    cout << getSum(N) << endl;
    return 0;
}

相似回答