๐Ÿ“ฆ Chango/๐Ÿซ First Solve at School

[BOJ B2][C++] ๋ฐฑ์ค€ 2153๋ฒˆ: ์†Œ์ˆ˜ ๋‹จ์–ด

์„ ๋‹ฌ 2022. 12. 13. 01:37
๋ฐ˜์‘ํ˜•

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

 

2153๋ฒˆ: ์†Œ์ˆ˜ ๋‹จ์–ด

์†Œ์ˆ˜๋ž€ 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 1, 2, 3, 5, 17, 101, 10007 ๋“ฑ์ด ์†Œ์ˆ˜์ด๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ํŽธ์˜์ƒ 1๋„ ์†Œ์ˆ˜๋กœ ํ•˜์ž. ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ํ•˜๋‚˜

www.acmicpc.net

 

๋ฌธ์ œ

์†Œ์ˆ˜๋ž€ 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 1, 2, 3, 5, 17, 101, 10007 ๋“ฑ์ด ์†Œ์ˆ˜์ด๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ํŽธ์˜์ƒ 1๋„ ์†Œ์ˆ˜๋กœ ํ•˜์ž.

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ํ•˜๋‚˜ ์žˆ์„ ๋•Œ, a๋ฅผ 1๋กœ, b๋ฅผ 2๋กœ, …, z๋ฅผ 26์œผ๋กœ, A๋ฅผ 27๋กœ, …, Z๋ฅผ 52๋กœ ํ•˜์—ฌ ๊ทธ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด cyworld๋Š” ํ•ฉ์„ ๊ตฌํ•˜๋ฉด 100์ด ๋˜๊ณ , abcd๋Š” 10์ด ๋œ๋‹ค.

์ด์™€ ๊ฐ™์ด ๊ตฌํ•œ ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ ๊ฒฝ์šฐ, ๊ทธ ๋‹จ์–ด๋ฅผ ์†Œ์ˆ˜ ๋‹จ์–ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ๋‹จ์–ด๊ฐ€ ์†Œ์ˆ˜ ๋‹จ์–ด์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 20์ž ์ดํ•˜์ด๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๋Œ€๋ฌธ์ž๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ถœ๋ ฅ

์•„๋ž˜์˜ ์˜ˆ์ œ์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ์„ ํ•œ๋‹ค. ์†Œ์ˆ˜ ๋‹จ์–ด์ธ ๊ฒฝ์šฐ์—๋Š” It is a prime word.๋ฅผ, ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” It is not a prime word.๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์†Œ์ˆ˜๋Š” ์‰ฝ๊ฒŒ ํŒ๋ณ„ ๊ฐ€๋Šฅํ•˜๋‹ค

ํ•˜์ง€๋งŒ!

๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ๊ฐ€ ๋œฌ๋‹ค๋ฉด..

ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ๋ฉ”์ธํ•จ์ˆ˜์—์„œ ํ•ด๊ฒฐํ•˜์ž....

์ด๊ฑฐ๋•Œ๋ฌธ์— ์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค ใ… ใ… 

 

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    
    // v[i] : ์ˆซ์ž i๊ฐ€ ์†Œ์ˆ˜์ธ๊ฐ€?
    vector<bool> isPrime(1040, true);
    for(int i=2; i<=1040; i++) {
        if(!isPrime[i])
            continue;
        for(int j=i*i; j<=1040; j+=i) {
            if(!isPrime[j])
                continue;
            isPrime[j] = false;
        }
    }
    
    // ์ž…๋ ฅ
    string word;
    cin >> word;

    // ๋‹จ์–ด์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ
    int cnt = 0;
    for(int i=0; i<word.size(); i++){
        if(word[i] < 90)  // ๋Œ€๋ฌธ์ž
            cnt += word[i]-'A'+27;
        else  // ์†Œ๋ฌธ์ž
            cnt += word[i]-'a'+1;
    }
    
    // ์ถœ๋ ฅ
    if(isPrime[cnt])
        cout << "It is a prime word.";
    else
        cout << "It is not a prime word.";
    
    return 0;
}

/*
 */
๋ฐ˜์‘ํ˜•