10198 约数总和

题目描述

给出一个数n,计算n的所有的约数的总和

输入格式

一个整数n

输出格式

一个整数表述n的所有的约数的总和

样例

输入 #1

1
输出 #1

1
输入 #2

6
输出 #2

12
数据范围与提示

12有1,2,3,4,6,12共6个约数,总和为28

注意n <= 10^9

分类标签

[枚举]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int a;
int b;
int c;
int d;


// The main procedure
int main() {
  cin>>a;
  b = sqrt(a);
  d = 0;
  for (int i = 1; i <= b; i++) {
    if ((a%i) == 0) {
      c = (a/i);
      if (i == c) {
        d += c;
      } else {
        d += (c+i);
      }
    }
  }
  cout<<d;
  return 0;
}

Blockly题解代码图片