1D1P Day76 BOJ 2153번 소수 단어 문제 - 2021.01.19 - 2153.py
출처 : (BOJ_2153번_소수 단어)[https://www.acmicpc.net/problem/2153]
- 1도 소수라는 조건을 기억하자.
- 미리 소수 배열을 만든다.
- 각 알파벳은
ord
를 이용해서 정수로 변환하자.
에라토스테네스의 체를 이용하는 게 더 효율적이겠지만, 그냥 2000개의 배열을 각각 소수 검사했다.
나타날 수 있는 소수의 최대값이 52 * 20 정도이기 때문에 2000 정도면 충분할 것이다.
# 1D1P Day76 BOJ 2153번 소수 단어 문제 - 2021.01.19
word = input()
primes = [1] * 2000
primes[0] = 0
primes[1] = 1
for i in range(4, 2000):
for j in range(2, int(i ** 0.5) + 1):
if not (i % j):
primes[i] = 0
break
result = 0
for i in range(len(word)):
if 'a' <= word[i] <= 'z':
result += ord(word[i]) - ord('a') + 1
else:
result += ord(word[i]) - ord('A') + 27
if primes[result]:
print("It is a prime word.")
else:
print("It is not a prime word.")
'PS' 카테고리의 다른 글
[BOJ] 15664번 N과 M (10) 문제 (0) | 2021.03.03 |
---|---|
[BOJ] 15665번 N과 M (11) 문제 (0) | 2021.03.03 |
BOJ - 2133번 타일 채우기 (0) | 2020.09.08 |
BOJ - 1699번 제곱수의 합 (0) | 2020.09.08 |
BOJ - 1463번 1로 만들기 (0) | 2020.09.03 |