본문 바로가기

Algorithm/Mathematics

Baekjoon 17173 배수들의 합

Link https://www.acmicpc.net/problem/17173

소스결과 1988KB / 0 ms

언어 C++ 17

출처 Baekjoon

분류 수학, 에라토스테네스의 체

 

설명

자연수 K개 각각의 배수 중 N 이하의 합을 구하여라. 단 중복은 한번만 더한다.

 

에라토스테네스의 체와 유사한 방식으로 해결한다.

 

소스코드

#include <iostream>

using namespace std;

const int MAX = 1000;

bool checkBoard[MAX + 1];

int main()
{
	int n, m; cin >> n >> m;

	int start = -1;

	while (m--) {
		int k; cin >> k;

		if (start == -1)
			start = k;

		for (int i = 1; i * k <= 1000; i++)
			checkBoard[i*k] = true;
	}

	int sum = 0;
	for (int i = start; i <= n; i++)
		if (checkBoard[i])
			sum += i;

	cout << sum;

	return 0;
}

'Algorithm > Mathematics' 카테고리의 다른 글

Baekjoon 1722 순열의 순서  (0) 2019.08.19
Baekjoon 13251 조약돌 꺼내기  (0) 2019.08.19
Baekjoon 6064 카잉 달력  (0) 2019.06.03
Baekjoon 17103 골드바흐 파티션  (0) 2019.04.01
Baekjoon 6588 골드바흐의 추측  (0) 2019.04.01