PS/BOJ

[백준 BOJ] 2153 소수 단어

Jubil 2018. 11. 23. 06:34
반응형

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 == 2cout << success << endl;

    else cout << failure << endl;

 

    return 0;

 

Colored by Color Scripter

cs

 



반응형

'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