알고리즘/백준

[D3] 합성수 방정식 - 16002 (python)

KimMinGyun 2024. 6. 25. 10:00

문제 링크

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

합성수란 1과 자기 자신 이외의 다른 자연수들의 곱으로 나타낼 수 있는 자연수를 말한다. 예를 들어 1, 3, 7, -12는 합성수가 아니고, 6, 12, 10000은 합성수이다.  자연수 이 주어질 때, x-y = N 을 만족시키는 10^9이하의 두 합성수 x와 y를 아무거나 하나 구하는 프로그램을 작성하라. 모든 N에 대해 이 방정식의 해가 존재함을 증명할 수 있다.     

 

[입력]  

첫 번째 줄에 테스트 케이스의 수 가 주어진다.  각 테스트 케이스는 한 개의 줄로 이루어지며, 각 줄에는 자연수 N (1 <= N <= 10^7)이 주어진다.     

 

[출력]  

각 테스트 케이스마다, x-y=N 을 만족시키는 두 합성수 x와 y를 공백 하나를 사이로 두고 출력한다. 2<= x, y <= 10^9 를 만족해야 한다.

 

 

코드

 

for t in range(1, int(input())+1):
    print(f'#{t}', end=' ')
    n = int(input())
    print(n*9, n*8)

 

합성수는 소수가 아닌 자연수를 뜻한다.

n의 범위에 1이 포함이 되어있으므로 

(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)이 아닌 8, 9을 n에 곱하면 무조건 합성수가 된다.