2153_소수 단어
링크
https://www.acmicpc.net/problem/2153
풀이
소문자인지 대문자인지 철자별로 판별 후, 소문자면 (‘a’ – 1)을 빼고, 대문자면 (‘A’ – 27)을 빼면 됩니다.
그렇게 합을 구한 후, 소수 판정하고 출력해주면 됩니다.
물론 1일 때도 소수로 한다고 하니, 이때만 예외처리 해주시면 됩니다.
코드
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 35 36 |
//2153_소수 단어 #include <iostream> #include <string> using namespace std;
string str; string success = "It is a prime word."; string failure = "It is not a prime word."; int ans, cnt;
int main() { cin >> str;
for (int i = 0; i < str.length(); ++i) { char tmp = str[i];
if ('a' <= tmp && tmp <= 'z') tmp -= ('a' - 1); else tmp -= ('A' - 27);
ans += tmp; }
if (ans == 1) { cout << success << endl; return 0; }
for (int i = 1; i <= ans; ++i) { if (ans % i == 0) cnt++; }
if (cnt == 2) cout << success << endl; else cout << failure << endl;
return 0;
|
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 1138 한 줄로 서기 (0) | 2018.11.25 |
---|---|
[백준 BOJ] 1940 주몽 (0) | 2018.11.24 |
[백준 BOJ] 1267 핸드폰 요금 (0) | 2018.11.22 |
[백준 BOJ] 1712 손익분기점 (0) | 2018.11.21 |
[백준 BOJ] 2903 중앙 이동 알고리즘 (0) | 2018.11.20 |