题目:给你一个字符串,统计里面的每个字符,输出出现素数次数的字母和数字。
分析:简单题,数论,字符串处理。先打表计算素数,然后统计、判断、输出即可。
说明:按照字符的ASC编码顺序输出。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
int prime[2004] = {0};
char str[2004];
int size[256];
int main()
{
prime[0] = prime[1] = 1;
for ( int i = 2 ; i < 2001 ; ++ i )
if ( !prime[i] )
for ( int j = i*2 ; j < 2001 ; j += i )
prime[j] = 1;
int T;
while ( cin >> T )
for ( int t = 1 ; t <= T ; ++ t ) {
cin >> str;
memset( size, 0, sizeof(size) );
for ( int i = 0 ; str[i] ; ++ i )
size[str[i]] ++;
cout << "Case " << t << ": ";
int number = 0;
for ( int i = 0 ; i < 256 ; ++ i )
if ( !prime[size[i]] )
if ( i >= '0' && i <= '9'
|| i >= 'A' && i <= 'Z'
|| i >= 'a' && i <= 'z' ) {
cout << (char)i;
number ++;
}
if ( !number ) cout << "empty";
cout << endl;
}
return 0;
}