UVa10924 Prime Words

解説
この問題では 1 は素数として扱っている。

#include <bits/stdc++.h>

using namespace std;

#define REP(i,a,b) for(int i=a;i<(int)b;i++)
#define rep(i,n) REP(i,0,n)

inline bool isPrime(int x) {
  int y = x;
  for(int i=2; i<=sqrt(x); i++) {
    if(y % i == 0) return false;
  }
  return true;
}

int main() {
  
  for(string word; cin >> word;) {
    int size = word.size();
    int sum = 0;
    for(int i=0; i<size; i++) {
      if(isupper(word[i])) {
	sum += word[i]-'A'+27;
      }
      else {
	sum += word[i]-'a'+1;
      }
    }
    if(isPrime(sum)) {
      cout << "It is a prime word.\n";
    }
    else {
      cout << "It is not a prime word.\n";
    }
  }
  
  return 0;
}