문제 : 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

+ Recent posts