1 /* 描述 2 笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 3 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数, 4 如果maxn-minn是一个质数,那么笨小熊就认为这是个Lucky Word,这样的单词很可能就是正确的答案。 5 6 输入 7 第一行数据N(0<N<100)表示测试数据组数。 8 每组测试数据输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。 9 输出 10 每组测试数据输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 11 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0 12 样例输入 13 2 14 error 15 olympic 16 样例输出 17 Lucky Word 18 2 19 No Answer 20 0*/ 21 #include<stdio.h> 22 #include<string.h> 23 int main() 24 { 25 int N; 26 scanf("%d",&N); 27 getchar(); 28 while(N--) 29 { 30 int f(int a); 31 int maxn = 0, minn = 100, i, j, prime, n, num1; 32 char s[101]; 33 scanf("%s",s); 34 n = strlen(s); 35 for(i = 0; i<n ;i++) 36 { 37 num1 = 1; 38 if(s[i] == '0') 39 continue; 40 else 41 { 42 for(j= i+1 ; j < n ; j++) 43 { 44 if(s[i] == s[j]) 45 { 46 s[j]='0'; 47 num1++; 48 } 49 } 50 if(num1 > maxn) 51 maxn=num1; 52 if(num1 < minn) 53 minn=num1; 54 } 55 } 56 prime= maxn - minn; 57 if( f(prime) ) 58 printf("Lucky Word\n%d\n",prime); 59 else 60 printf("No Answer\n0\n"); 61 } 62 return 0; 63 } 64 #include<math.h> 65 int f(int a)//素数 66 { 67 int i; 68 if(a < 2) 69 return 0; 70 for(i = 2 ; i <= sqrt(a) ; ++i) 71 if(a % i == 0) 72 return 0; 73 return a; 74 }