背景 Background
NOIP2008复赛提高组第一题
描述 Description
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
输入格式 InputFormat
输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
输出格式 OutputFormat
输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
代码:
01 | #include <stdio.h> |
02 | #include <string.h> |
03 | int f[30]; |
04 | int sushu( int x); |
05 | int main() |
06 | { |
07 | int i,j; |
08 | char t[110]; |
09 | while ( scanf ( "%s" ,t)!=EOF) |
10 | { |
11 | for (i=0;i< strlen (t);i++) |
12 | f[t[i]- 'a' +1]++; |
13 | int max=-1,min=30; |
14 | for (i=1;i<=26;i++) |
15 | { |
16 | if (f[i]>max) max=f[i]; |
17 | if (f[i]<min && f[i]) min=f[i]; |
18 | } |
19 | int flag=sushu(max-min); |
20 | if (flag) printf ( "Lucky Word\n%d\n" ,max-min); |
21 | else printf ( "No Answer\n0\n" ); |
22 | for (i=0;i<30;i++) |
23 | f[i]=0; |
24 | } |
25 | return 0; |
26 | } |
27 |
28 | int sushu( int x) |
29 | { |
30 | if (x<2) return 0; |
31 | for ( int i=2;i<x;i++) |
32 | if (x%i==0) return 0; |
33 | return 1; |
34 | } |