输入一个由大小写字母组成的字符串,每个字符代表着不同的数字,计算出这个字符串的数值,判断是否是素数;
首先我们打个素数表;
然后利用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 ;
}