天天看点

UVA - 10924 - Prime Words (素数)

输入一个由大小写字母组成的字符串,每个字符代表着不同的数字,计算出这个字符串的数值,判断是否是素数;

首先我们打个素数表;

然后利用ascll码存入数组中,然后判断就ok了

还有一点!!!这个题中 1 算素数!!!

wr无数次,还是读题不仔细

#include<iostream>
#include<cstring>
#include<cmath>
#define MAXN 30

using namespace std;

char str[MAXN];
bool vis[];

int checkprime(int n) {
    int m = sqrt(n+);
    memset(vis, true, sizeof(vis));
    vis[] = false;
    for(int i = ; i <= m; i++) {
        if(vis[i]) {
            for(int j = i*i; j <= n; j+=i) {
                vis[j] = false;
            }
        }
    }
}

int main() {
    checkprime();
    while(~scanf("%s", str)) {
        int sum = ;
        int len = strlen(str);
        for(int i = ; i < len; i++) {
            if(isupper(str[i])) {//后来发现自己这个地方写麻烦了, T-T
                sum += str[i] - 'A' + ;
            }else {
                sum += str[i] - 'a' + ;
            }
        }
        if(vis[sum]) puts("It is a prime word.");
        else puts("It is not a prime word.");
    }
    return ;
}