UVa 10789 - Prime Frequency

来源:互联网 发布:java猜数字游戏1 100 编辑:程序博客网 时间:2024/05/21 08:39

题目:给你一个字符串,统计里面的每个字符,输出出现素数次数的字母和数字。

分析:简单题,数论,字符串处理。先打表计算素数,然后统计、判断、输出即可。

说明:按照字符的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;}

0 0
原创粉丝点击