思路,将26个字母按数字顺序存入数组,再逐一搜搜,记录每个数据出现的次数,找出最大值和最小值,然后做差判断素数即可(已经对单词的字母进行排序)
代码如下 最重要的是按照创造一个数组存入相应的字母出现的次数
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<string>
#include <string.h>
using namespace std;
int ispri(int n){
if(n ==0){
return 0;}if(n ==1){
return 0;}if(n ==2){
return 1;}if(n ==3){
return 1;}for(int i=2;i<sqrt(n);i++){
if(n%i==0){
return 0;}}return 1;
}
int main()
{
char a[100];scanf("%s",a);int num['z']={
0};
// cout<<strlen(a);
// cout<<a<<endl;sort(a,a+strlen(a));
// cout<<a<<endl;int x=0;for (int i = 0; i < strlen(a); i++) {
num[a[i]]++;}int maxm=0;int minn=10005;for (int i = 'a'; i < 'z'; i++) {
maxm=max(maxm,num[i]);if(num[i]!=0)minn=min(minn,num[i]);}if(ispri(maxm-minn)){
printf("Lucky Word\n%d",maxm-minn);}else{
printf("No Answer\n0");}return 0;
}