백준(Python) 풀이/수학

백준(Python) 2153번 소수 단어 풀이

개발윗미 2021. 11. 8. 11:34

Python으로 구현한 2153번 소수 단어 문제 풀이입니다.

 

https://www.acmicpc.net/problem/2153

 

2153번: 소수 단어

소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나

www.acmicpc.net


s = input()

sum_value = 0
for i in range(len(s)) :
  if ord(s[i]) >= 97 :
    sum_value += int(ord(s[i]) - 96)
  else :
    sum_value += int(ord(s[i]) - 38)

flag = 0
for i in range(2, int(sum_value**0.5) + 1) :
  if sum_value % i == 0 :
    flag = 1

if flag == 0 :
  print("It is a prime word.")
else :
  print("It is not a prime word.")

 

1. 반복문을 통해 입력받은 문자열의 문자를 하나씩 확인하고, 그 값이 아스키코드 값으로 97이상일 경우 소문자에

 

   해당하기 때문에 96을 뺀 값을 정수형으로 sum_value에 누적한다.

 

   만약 97 미만일 경우 대문자에 해당하기 때문에 38을 뺀 값을 정수형으로 sum_value에 누적한다.

 

2. 반복문을 통해 단어의 합을 의미하는 sum_value가 소수인지 판별할 수 있도록 하고, 소수라면 flag값을 1로 갱신한다.

 

3. 최종적으로 flag값을 확인하여 문제에서 요구하는 출력 형식으로 문자열을 촐력한다.