알고리즘/시뮬레이션 & 구현

[백준/수학/C++] 17425번 약수의 합

데메즈 2023. 1. 17. 11:00
728x90
반응형

https://www.acmicpc.net/problem/17425

 

17425번: 약수의 합

두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더

www.acmicpc.net

#include <bits/stdc++.h>

using namespace std;
long long int f[1000001] = {0,};
long long int g[1000001] = {0,};

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);


    int n=1000000;

    int j = 1;
    for (int i = 1; i <= n; i++) {
        while (j <= n && i * j <= n) {
            f[i * j] += i;
            j++;
        }
        j = 1;
    }

    for (int i = 1; i <= n; i++) {
        g[i] = g[i - 1] + f[i];
    }

    int t;
    cin >> t;

    for(int i=0; i<t; i++){
        int k;
        cin >> k;
        cout << g[k] << '\n';
    }



    return 0;
}

 

728x90
반응형