就是求(0-9)、(A-Z)、(a-z)中字符数为素数的输出,没有一个的输出empty
我是利用映射来求得,0的Ascll为48 z的Ascll为122
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int prime(int x){
int i;
if(x==1||x==0)
return 0;
for(i=2;i<x;i++){
if(x%i==0)
return 0;
}
return 1;
}
char p[2001];
int s[125];
int main(){
int t,i,j,Case=1;
int num;
scanf("%d",&t);
while(t--){
memset(s,0,sizeof(s));
scanf("%s",&p);
num=0;
for(i=0;p[i]!='\0';i++)
s[p[i]-'0']++;
printf("Case %d: ",Case++);
for(i=0;i<=125;i++){
if(prime(s[i])){
printf("%c",i+'0');
num++;
}
}
if(num==0) printf("empty");
printf("\n");
}
return 0;
}