문제 : https://www.acmicpc.net/problem/2153
[알고리즘풀이]
주어진 Input을 규칙에 맞춰 정수로 바꾸고, 그 정수가 소수인지 판단한다.
( 소수인지, 아닌지는 에라토스테네스체를 이용. )
#include<iostream>
#include<string>
using namespace std;
bool p[1050];
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
for (int i = 2; i < 1050; i++) {
if (p[i] == false) {
for (int j = 2 * i; j < 1050; j += i)
p[j] = true;
}
}
string input;
cin >> input;
int n = 0;
for (int i = 0; i < input.length(); i++) {
if ('a' <= input[i] && input[i] <= 'z') {
n += input[i] - 'a' + 1;
}
else {
n += input[i] - 'A' + 27;
}
}
if (p[n] == false)
cout << "It is a prime word.";
else
cout << "It is not a prime word.";
return 0;
}
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] 3896 - Prime Gap (0) | 2019.09.29 |
---|---|
[BOJ] 3474 - Factorial (0) | 2019.09.29 |
[BOJ] 11659 - 구간 합 구하기 4 (0) | 2019.09.27 |
[BOJ] 7785 - Easy work (0) | 2019.09.24 |
[BOJ] 1620 - 나는야 포켓몬 마스터 이다솜 (0) | 2019.09.24 |