Problem Solving/BOJ

[백준 / BOJ] C++ 1145 적어도 대부분의 배수

nageune 2023. 2. 11. 02:24
728x90
반응형

1145번: 적어도 대부분의 배수

 

문제

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

 

1145번: 적어도 대부분의 배수

첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다.

www.acmicpc.net

 

 

풀이

5개의 수 중 적어도 3개 이상의 수의 배수면 적어도 대부분의 배수라고 한다.

5개의 수를 입력받은 다음 가장 작은 수를 N이라 하고 각각의 수에 대하여 N으로 나누어 떨어지는지 확인한다. 나누어 떨어지는 수의 개수가 3 이상이면 적어도 대부분의 배수가 되므로 그 수를 출력하면 되고 아니라면 N을 증가시키면서 다시 확인한다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  vector<int> v(5);
  for (int i = 0; i < 5; i++)
    cin >> v[i];
  sort(v.begin(), v.end());
  int n = v[0];
  while (1) {
    int cnt = 0;
    for (int i = 0; i < 5; i++)
      if (n % v[i] == 0)
        cnt++;
    if (cnt >= 3)
      break;
    n++;
  }
  cout << n << '\n';
  return 0;
}

 

728x90
반응형