【题目描述】
假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn−minn是一个质数,那么这是个Lucky Word,这样的单词很可能就是正确的答案。
【输入输出样例】
输入:
error 输出: Lucky Word
2 【方法解析】 先找出maxn和minn,再用素数函数判断是否为素数,最后输出。 【源代码】 |
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
using namespace std;
char s[100];
int a[300];
int n,maxn=-1,minn=100010;
bool ss(int x){
if(x==0||x==1)return 0;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return 0;
}
return 1;
}//判断素数函数
int main(){
gets(s);//输入要用gets
n=strlen(s);
for(int i=0;i<n;i++)a[s[i]]++;
for(int i=97;i<=122;i++){//从a开始到z
if(a[i]!=0){
maxn=max(a[i],maxn);
minn=min(minn,a[i]);
}//找到最大最小值
}
if(ss(maxn-minn)==1){
cout<<"Lucky Word"<<endl;
cout<<maxn-minn;
}//判断结果,下同
else{
cout<<"No Answer"<<endl;
cout<<0;
}
return 0;
}
//♂_The_LYH_25_♂