欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1084. 因子求和
类型:sqrt函数入门
题目描述:
已知一个正整数 N( 20≤N≤800000000 ),请你编写程序求出该数的全部因子(不包括 1 和 n )的和。
输入:
一个正整数 n 。
输出:
一个整数代表 n 的因子和。
样例1:
输入:
24
输出:
35
样例2:
输入:
36
输出:
54
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:一个正整数 N( 20≤N≤800000000 )
//未知:该数的全部因子(不包括 1 和 n )的和。
//二、定义变量(已知、未知、关系)
long long int n,sum=0;
//三、输入已知
cin>>n;
//四、根据关系计算
for(int i=2;i*i<=n;++i){
if(n%i==0){
sum+=i+n/i;
if(i==n/i) sum-=i;
}
}
//五、输出未知
cout<<sum;
return 0;
}