範例程式碼 uva10789

//uva10789
#include <iostream>
#include <set>
#include <vector>

using namespace std;

void mkprime(vector<bool>& prime) {
    prime[0] = false;
    prime[1] = false;

    for (int i = 2; i < 2001; i++) {
        if (prime[i]) {
            for (int j = i + i; j < 2001; j += i) {
                prime[j] = false;
            }
        }
    }
}

int main() {
    int T = 0;
    vector<bool> prime(2001, true);

    mkprime(prime);

    cin >> T;
    for (int i = 0; i < T; i++) {
        string input = "";
        set<char> output;
        vector<int> count('z' + 1, 0);

        cin >> input;
        for (auto c : input) {
            count[c]++;
        }
        for (int j = 0; j < count.size(); j++) {
            if (prime[count[j]]) {
                output.insert(j);
            }
        }
        cout << "Case " << i + 1 << ": ";
        if (output.empty()) {
            cout << "empty" << endl;
        } else {
            for (auto j : output) cout << j;
            cout << endl;
        }
    }

    return 0;
}