본문 바로가기

Algorithm_BOJ(백준)/수학(Math)

[백준 17427 c++ V] 약수의 합 2

728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// [백준 17427 c++ V] 약수의 합 2 
// 문제: n을 입력하면 n이하의 수들의 각 수의 약수들의 합의 총합을 구해라
// 접근: 약수 완전탐색 -> 1000000이라 시간초과
// 접근: 나오는 약수들 나열 -> 규칙-> 약수3의 갯수= n/3 , 따라서 총 합=약수*약수의 갯수
// 풀이: 
// 각 약수의 갯수* 약수 = 약수둘의 합 구한다.
int n;
 
int main()
{    
    ios::sync_with_stdio(false); // 계산시간 단축 // 문제마다 오류 유무 다름
    cin.tie(NULL); cout.tie(NULL);// 입출력 시간 단축
 
    cin >> n;
    long long sum=0;
    for (int i = 1; i <= n; i++) {
        sum += i * (n / i); // 약수* 약수의 갯수
    }
    cout << sum;
    return 0;
}
cs
반응형

'Algorithm_BOJ(백준) > 수학(Math)' 카테고리의 다른 글

[백준 1037 c++ OO] 약수  (0) 2021.07.31
[백준 4375 c++ X] 1  (0) 2021.07.31
[백준 1037 c++ O] 약수  (0) 2021.07.17
[백준 10430 c++ O] 나머지  (0) 2021.07.17
[백준 1676번 c++] 팩토리얼 0의 개수  (0) 2021.01.27