본문 바로가기

Python 코딩테스트

수학: 백준 4375 1 파이썬(python)

반응형

문제: https://www.acmicpc.net/problem/4375

 

4375번: 1

2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.

www.acmicpc.net

풀이:

이 문제는 1, 11, 111, 1111와 같이 1로 이루어진 수들로 나누어 떨어지는 수의 자릿수를 찾는 문제입니다.

 

입력을 무제한으로 받아야하기 때문에 try, except 문을 사용했고 EOF(end of file) 에러가 발생하면 종료되도록 처리해주어야 합니다.

 

2와 5로 나누어 떨어지지 않는 정수들은 모두 1로 이루어진 수들로 나누어 떨어지기 때문에 나누어 떨어지지 않을 경우를 생각할 필요는 없었고, num에 10을 곱하고 1을 더하는 방법으로 1로 이루어진 수를 무한루프를 돌며 만들어 주었습니다.

정답:

while True:
    try:
        n = int(input())
        if n == 1:
            print(1)
            continue
        num = 1
        cnt = 1
        
        while True:
            num = (num * 10) + 1
            cnt += 1
            if (num % n) == 0:
                print(num)
                break
    except EOFError:
        break
반응형