---
# System prepended metadata

title: UVA 10924 - Prime Words
tags: [UVA]

---

UVA 10924 - Prime Words

題目:

質數就是一個數字只有兩個因數：1和自己，例如：1,2,3,5,17,101和10007都是質數。

在這問題中你需要讀入一組文字，每個字是由 a-z 和 A-Z 組成，每個字母都有他的值，字母 a 值 1，字母 b 值 2 ... 到字母 z 值 26，同樣的字母 A 值 27，B 值 28， Z 值 52。

你應該要寫個程式來檢查這組字是不是prime word，如果這組文字的字母值總和為質數的話，他就是 prime word。

Input
輸入含有多組測試資料，每組一列，且有 L （1 <= L <= 20）個字母。請參考Sample Input。

Output
對每一組字，如果它是 prime word 的話，輸出 "It is a prime word."。否則，請輸出 "It is not a prime word."。

Sample Input #1
UFRN
contest
AcM
a
A

Sample Output #1
It is a prime word.
It is not a prime word.
It is not a prime word.
It is a prime word.
It is not a prime word.

C++ code:

```c++=
#include <bits/stdc++.h>
//#define spd ios::sync_with_stdio(false); cin.tie(0);
using namespace std;

int f(char ch) { 

    if (islower(ch)) {
        return ch - 'a' + 1;
    }
    else {
        return ch - 'A' + 27;
    }

} 

bool isprime(int n) {

    for (int i = 2; i <= sqrt(n); ++i) {
        if (n % i == 0) {
            return false;
        } 
    }
    return true;
    
}

int main() {
    
    string s;
    while (cin >> s) {

        int sum = 0;
        for (int i = 0; i < s.size(); ++i) {
            sum += f(s[i]);
        }
        
        int answer = isprime(sum);
        if (answer) {
            cout << "It is a prime word." << endl;
        }
        else {
            cout << "It is not a prime word." << endl;
        }
        
    }

    return 0;
}

```