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")
n = 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의 약수는 1, 3, 9이고, 8이면 1, 2, 4, 8 이므로
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