Data Structures & Algorithms

[Algorithms] Basic-뒤집은 소수

숄구-ml 2022. 5. 12. 20:11

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys
 
sys.stdin = open("input""rt")
= int(input())
num_ls = list(input().split())
 
def reverse(x):
    return int(x[::-1])             // string을 reverse해서 int형으로 변환해 주었다
 
def isPrime(x):
    if x == 1:                         // 예를 들어, 100을 reverse 시켰을 경우 1이 되므로, 1은 소수가 아니므로
        return False                 // False를 return한다
    for i in range(2, x//2+1):         // **예를 들어, 9의 약수는 13, 9이고, 8이면 1248 이므로
        if x % i==0:                 // **수의 절반이 되는 값 이하로 약수가 존재한다. 따라서 range도
            return False             // 'x//2+1' 로 x//2까지 돌아가게 하였다
    else:
        return True
 
for num in num_ls:
    new_num = reverse(num)
    if isPrime(new_num):
        print(new_num, end=" ")
 
#---------------------------------------------------------------------------------
# ver.2
num_ls = list(map(int, input().split()))
def reverse(x):
    res=0
    while x > 0:                     // 수가 0이 되기 전까지 반복문이 돌아간다
        remainder = x % 10             // 수를 10으로 나눈 나머지
        x = x // 10                 // 수를 10으로 나눈 몫
        res = res*10 + remainder    // 뒷 자리수부터 reverse하는 것이므로 res*10을 곱하고 나머지를 더한다
    return res
 
cs
728x90