#include <stdio.h>
int main() {
long long num = 73513440; // 対象の整数
long long count = 0; // 約数の個数を数えるカウンタ
long long sum = 0; // 約数の総和を足していく変数
// 【手順1】1から「iの2乗がnum以下」の間ループを回す(効率化のため)
for (long long i = 1; i * i <= num; i++) {
// numがiで割り切れる場合、iは約数
if (num % i == 0) {
count++; // 約数の個数をカウント
sum += i; // 約数を和に加算
// 【手順2】相方の約数 (num / i) も同時に処理する
// ただし、i * i == num(平方数)の場合は同じ数を2回足さないようにチェック
if (i != num / i) {
count++; // 相方の個数をカウント
sum += num / i; // 相方の約数を和に加算
}
}
}
// 【手順3】結果の表示
printf("%lld の約数の個数: %lld 個\n", num
, count
); printf("%lld の約数の総和: %lld\n", num
, sum
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGxvbmcgbG9uZyBudW0gPSA3MzUxMzQ0MDsgLy8g5a++6LGh44Gu5pW05pWwCiAgICBsb25nIGxvbmcgY291bnQgPSAwOyAgICAgIC8vIOe0hOaVsOOBruWAi+aVsOOCkuaVsOOBiOOCi+OCq+OCpuODs+OCvwogICAgbG9uZyBsb25nIHN1bSA9IDA7ICAgICAgICAvLyDntITmlbDjga7nt4/lkozjgpLotrPjgZfjgabjgYTjgY/lpInmlbAKCiAgICAvLyDjgJDmiYvpoIYx44CRMeOBi+OCieOAjGnjga4y5LmX44GMbnVt5Lul5LiL44CN44Gu6ZaT44Or44O844OX44KS5Zue44GZ77yI5Yq5546H5YyW44Gu44Gf44KB77yJCiAgICBmb3IgKGxvbmcgbG9uZyBpID0gMTsgaSAqIGkgPD0gbnVtOyBpKyspIHsKICAgICAgICAvLyBudW3jgYxp44Gn5Ymy44KK5YiH44KM44KL5aC05ZCI44CBaeOBr+e0hOaVsAogICAgICAgIGlmIChudW0gJSBpID09IDApIHsKICAgICAgICAgICAgY291bnQrKzsgICAvLyDntITmlbDjga7lgIvmlbDjgpLjgqvjgqbjg7Pjg4gKICAgICAgICAgICAgc3VtICs9IGk7ICAvLyDntITmlbDjgpLlkozjgavliqDnrpcKCiAgICAgICAgICAgIC8vIOOAkOaJi+mghjLjgJHnm7jmlrnjga7ntITmlbAgKG51bSAvIGkpIOOCguWQjOaZguOBq+WHpueQhuOBmeOCiwogICAgICAgICAgICAvLyDjgZ/jgaDjgZfjgIFpICogaSA9PSBudW3vvIjlubPmlrnmlbDvvInjga7loLTlkIjjga/lkIzjgZjmlbDjgpIy5Zue6Laz44GV44Gq44GE44KI44GG44Gr44OB44Kn44OD44KvCiAgICAgICAgICAgIGlmIChpICE9IG51bSAvIGkpIHsKICAgICAgICAgICAgICAgIGNvdW50Kys7ICAgICAgIC8vIOebuOaWueOBruWAi+aVsOOCkuOCq+OCpuODs+ODiAogICAgICAgICAgICAgICAgc3VtICs9IG51bSAvIGk7IC8vIOebuOaWueOBrue0hOaVsOOCkuWSjOOBq+WKoOeulwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIOOAkOaJi+mghjPjgJHntZDmnpzjga7ooajnpLoKICAgIHByaW50ZigiJWxsZCDjga7ntITmlbDjga7lgIvmlbA6ICVsbGQg5YCLXG4iLCBudW0sIGNvdW50KTsKICAgIHByaW50ZigiJWxsZCDjga7ntITmlbDjga7nt4/lkow6ICVsbGRcbiIsIG51bSwgc3VtKTsKCiAgICByZXR1cm4gMDsKfQ==