본문 바로가기
알고리즘

Algorithm - 뒤집은 소수

by DGK 2021. 11. 2.

 

알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

문제

[뒤집은 소수]

 

N개의 자연수가 입력되면 각 자연수를 뒤집은 후, 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하시오.

예를 들어 32는 32를 뒤집으면 23이 되고, 23은 소수이므로 23을 출력하면 된다.

 

*참고

910을 뒤집으면 19가 되도록 프로그램을 작성해야 한다.

즉, 특정 숫자를 뒤집었을 때 첫 자리부터 연속된 0은 무시하도록 프로그램을 작성하시오.

또한, 뒤집는 함수 reverse(x)와 소수인지를 확인하는 함수 isPrime(x)를 반드시 작성하여 프로그래밍을 하시오.

 

 

*입력 설명

첫 번째 줄에 자연수의 개수 N(3 ≤ N ≤ 100)이 주어진다.

두 번째 줄에 N개의 자연수가 주어진다.

 

*출력 설명

첫 번째 줄에 뒤집은 소수를 출력한다.

단, 출력 순서는 입력된 순서대로 한다.

 

 


 

 

풀이(Python)

답안

import sys
sys.stdin = open('AA/input_8.txt', 'rt')

n = int(input())
a = list(map(int, input().split()))

def reverse(x):
    res = 0
    while x > 0:
        t = x % 10
        res = res * 10 + t
        x = x // 10
    return res

def isPrime(x):
    if x == 1:
        return False
    for i in range(2, x//2+1):
        if x % i == 0:
            return False
    else:
        return True

for x in a:
    tmp = reverse(x)
    if isPrime(tmp):
        print(tmp, end=' ')

# 출력 : 23 73

 

input_8.txt(입력)

5
32 55 62 3700 250

 

 

중요내용

  1. for i in range(2, x//2+1): 는 x가 1과 자신 이외의 약수를 갖는지 확인하는 과정이므로, x를 2부터 x를 2로 나눈 몫(x//2)까지 나눠서 확인하겠다는 의미의 코드이다.
  2. for-if-else 구문은 for문이 돌면서 if문의 조건을 만족하지 않는 경우, for문을 모두 마치면 else문을 마지막에(1회) 실행한다.

 

 

'알고리즘' 카테고리의 다른 글

Algorithm - 점수 계산  (0) 2021.11.02
Algorithm - 주사위 게임  (0) 2021.11.02
Algorithm - 소수의 개수(에라토스테네스 체)  (0) 2021.11.02
Algorithm - 자릿수의 합  (0) 2021.11.02
Algorithm - 정다면체  (0) 2021.11.02

댓글