1765. 笨小猴
Constraints
Time Limit: 1 secs, Memory Limit: 32 MB
Description
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
Input
输入有多组Case,每组Case只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
Output
每组Case输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
Sample Input
error
Sample Output
Lucky Word
2
#include <iostream>
#include <math.h>
#include <string.h>
#include <string>
using namespace std;
bool IsPrime (int x) {
if (x <= 1) //0和1都不是质数
return false;
else {
for (int i = 2; i <= (int)sqrt(x); i++)
if ((x % i) == 0)
return false;
return true;
}
}
int main () {
string word;
while (cin >> word) {
int a[26] = {0};
for (int i = 0; i < word.length(); i++)
a[word[i]- '0' - 48]++;
int min, max;
for (int i = 0; i < 26; i++) {
if (a[i] == 0)
continue;
else {
min = max = a[i];
break;
}
}
for (int i = 0; i < 26; i++) {
if (a[i] > max) //找最大值
max = a[i];
if (a[i] < min && a[i] != 0) //找到非0的最小值
min = a[i];
}
if (IsPrime(max - min)) { //如果是质数
cout<<"Lucky Word"<<endl;
cout<< max - min <<endl;
}
else {
cout<<"No Answer"<<endl;
cout<<"0"<<endl;
}
}
//system("pause");
return 0;
}