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 <iostream>
#include <vector>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
vector<long long> g(1000001, 0);
for (long long i = 1; i <= 1000000; i++)
{
for (long long j = i; j <= 1000000; j = j + i) // j는 i의 배수
{
g[j] = g[j] + i; //여기는 일단 f() 단계 j의 모든 약수의 합
}
g[i] = g[i - 1] + g[i]; // g[i] = g[i - 1] + f[i] 의 의미
}
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
cout << g[n]<<'\n';
}
}
'백준 c++' 카테고리의 다른 글
백준 1978 c++ 소수 찾기 (0) | 2024.01.26 |
---|---|
백준 2609 c++ 최대공약수와 최소공배수 (0) | 2024.01.25 |
백준 16926 c++ 배열 돌리기 1 (0) | 2024.01.23 |
백준 1037 c++ 약수 (0) | 2024.01.23 |
백준 4375 c++ 1 (1) | 2024.01.22 |