题目大意:
输入一个数,输出它所有约数之和。
解题思路:
暴力模拟——
如果用sqrt要判断 向下取整的sqrt(n)²=n,那么总和要减去一个 向下取整的sqrt(n)
源程序:
#include<cstdio>
#include<cmath>
using namespace std;
int n,ans;
int main()
{
//freopen("bri.in","r",stdin);
//freopen("bri.out","w",stdout);
scanf("%d",&n);
int n1=(int)sqrt(n);
for (int i=1;i<=n1;i++)
if (n%i==0)
ans+=i+(n/i);
if (n1*n1==n) ans-=n1;
printf("%d\n",ans);
}