UVA

来源:互联网 发布:淘宝的临期化妆品 编辑:程序博客网 时间:2024/06/15 11:35

输入一个由大小写字母组成的字符串,每个字符代表着不同的数字,计算出这个字符串的数值,判断是否是素数;
首先我们打个素数表;
然后利用ascll码存入数组中,然后判断就ok了

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

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

#include<iostream>#include<cstring>#include<cmath>#define MAXN 30using namespace std;char str[MAXN];bool vis[2500];int checkprime(int n) {    int m = sqrt(n+0.5);    memset(vis, true, sizeof(vis));    vis[0] = false;    for(int i = 2; i <= m; i++) {        if(vis[i]) {            for(int j = i*i; j <= n; j+=i) {                vis[j] = false;            }        }    }}int main() {    checkprime(2500);    while(~scanf("%s", str)) {        int sum = 0;        int len = strlen(str);        for(int i = 0; i < len; i++) {            if(isupper(str[i])) {//后来发现自己这个地方写麻烦了, T-T                sum += str[i] - 'A' + 27;            }else {                sum += str[i] - 'a' + 1;            }        }        if(vis[sum]) puts("It is a prime word.");        else puts("It is not a prime word.");    }    return 0;}