문제
같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
매우 규칙적이다.
예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다.
그렇다면 세 사람이 모두 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?
문제 URL: codeup.kr/showsource.php?id=15571943
입력
같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는,
방문 주기가 공백을 두고 입력된다. (단, 입력값은 100이하의 자연수이다.)
출력
3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.
입력 예시
3 7 9
출력 예시
63
풀이
힌트를 보면 아래와 코드가 같다.
...
day=1;
while(day%a!=0 || day%b!=0 || day%c!=0) day++; //이게 무슨 의미일까?
printf("%d", day);
...
여기서 2번째 줄이 3개의 숫자의 최소공배수를 구하는 코드이다. 이 최소공배수를 구하는 코드를 잘 기억해 놓으면 다음에 다른 곳에서 쓸 수 있을 것이다.
내 정답소스
#define _CRT_SECURE_NO_WARNINGS // SDL 관련 경고를 제거
#include <iostream>
using namespace std;
int main()
{
int p[3] = { 0 };
int day = 1;
scanf("%d%d%d", &p[0], &p[1], &p[2]);
while (day % p[0] != 0 || day % p[1] != 0 || day % p[2] != 0) day++; //이게 무슨 의미일까?
printf("%d", day);
return 0;
}