이 글에서는 파이썬(Python)을 사용하여 주어진 범위 내에서 3과 5로 나누어 떨어지는 모든 숫자를 출력하는 프로그램을 다룹니다. 핵심 아이디어는 간단합니다. 반복문으로 범위 내의 숫자를 하나씩 확인하면서, 해당 숫자가 3과 5 두 값 모두로 나누어 떨어지는지 검사하면 됩니다.
기본 코드 작성하기
아래는 사용자로부터 하한값과 상한값을 입력받아, 그 사이에서 3과 5로 나누어 떨어지는 숫자를 모두 출력하는 파이썬 코드입니다.
lower = int(input("Enter lower range limit:"))
upper = int(input("Enter upper range limit:"))
for i in range(lower, upper+1):
if((i%3==0) & (i%5==0)):
print(i)실행 결과
0부터 99까지의 범위를 입력했을 때의 실행 결과는 다음과 같습니다.
Enter lower range limit:0 Enter upper range limit:99 0 15 30 45 60 75 90
0부터 99 사이에서 3과 5의 공배수인 숫자들(15의 배수)만 정확히 출력된 것을 확인할 수 있습니다. 같은 코드를 활용해 범위를 0부터 1000으로 넓히면 결과는 다음과 같이 확장됩니다.
Enter lower range limit:0 Enter upper range limit:1000 0 15 30 45 60 75 90 105 120 135 150 165 180 195 .... .... 915 930 945 960 975 990
임의의 수로 나누어 떨어지는 숫자 출력하기
3과 5처럼 고정된 값이 아니라, 사용자가 지정한 임의의 수로 나누어 떨어지는 숫자를 찾고 싶다면 조건문 부분만 수정하면 됩니다. 나누는 수를 변수로 입력받도록 변경한 코드는 다음과 같습니다.
# 범위 내에서 임의의 수로 나누어 떨어지는 모든 숫자를 출력하는 경우
lower = int(input("Enter lower range limit:"))
upper = int(input("Enter upper range limit:"))
n = int(input("Enter the number to be divided by:"))
for i in range(lower, upper+1):
if(i%n==0):
print(i)프로그램 동작 원리 단계별 정리
범위 입력 받기: 사용자로부터 검사할 숫자의 하한값(lower)과 상한값(upper)을 입력받습니다.
나누는 수 결정: 기본 문제에서는 나누는 수가 3과 5로 고정되어 있으므로, if 문 안에 직접 3과 5를 작성합니다. 확장 버전에서는 사용자에게 나누는 수 n을 입력받습니다.
조건 검사 및 출력: 반복문과 AND 연산자(&)를 사용하여 3과 5 두 값 모두로 나누어 떨어지는 경우에만 숫자를 출력합니다. 즉, 두 조건을 모두 만족하는 공배수만 걸러집니다.
종료: 범위의 끝까지 검사가 완료되면 프로그램을 종료합니다.
나머지 연산자(%)를 활용한 이 방법은 파이썬뿐 아니라 대부분의 프로그래밍 언어에서 배수 판별에 널리 쓰이는 기본 패턴이므로, 로직을 익혀두면 다양한 문제 해결에 응용할 수 있습니다.