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; } ```