2
error
olympic
第四题 - 幸运函数
题目描述
幸运单词的定义如下:假设maxn是单词中出现次数最多的字母的出现次数(区分大小写),minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小熊就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
本题要求编写至少一个调用函数。
输入
第一行数据N(N>0),接下来N行里包含N组数据,即N个单词。
输出
每组测试数据输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”; 第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出-1
样例输入
2
error
olympic
样例输出
Lucky Word
2
No Answer
-1
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
int prime(int m);
int n,i,t,b[26],max_min,x,j,minn;
char a[100];
scanf("%d",&n);
getchar();//老年\n诱捕器
while(n--)
{
gets(a);
t=strlen(a);
for(i=0;i<26;i++)
{
b[i]=0;
}
for(i=0;i<t;i++)
{
b[a[i]-'a']++;
}
sort(b,b+26);//排序
for(i=0;i<26;i++)
if(b[i]!=0)
{
minn=b[i];
break;
}
max_min=b[25]-minn;
if(prime(max_min))
{
printf("Lucky Word\n");
printf("%d\n",max_min);
}
else
printf("No Answer\n-1\n");
}
return 0;
}
int prime(int x)
{
int i;
if(x<2)
return 0;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return 0;
return 1;
}
}