#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<math.h> #define NUM 100 int main() { char word[NUM] = { 0 }; gets(word); int len = strlen(word); int zimubiao[27] = { 0 };//统计 单词中 各个字母的出现 次数 //总共有 26 个 不同的字母 //将 26个字母 存入 数组中 for (int i = 1; i <= 26; i++) { zimubiao[i] = i + 96; } int cnt[27] = { 0 };//遍历字母表 和单词 统计 单词中 各个字母出现的 次数 for (int i = 1; i <= 26; i++)//遍历字母表 { for (int j = 0; j < len; j++)//遍历 所输入的单词 { if (word[j] == zimubiao[i]) { cnt[i]++;//就是 看a出现了几次 ,b 出现了几次,以此类推 } } } //统计完毕 //找 最大出现次数 与 最小出现次数 int maxn = cnt[0];//表示 单词中出现 次数最多的字母的出现次数 int minn = 100;//表示 单词中出现 次数最少的字母的出现次数 //遍历 cnt 计数表 for (int i = 1; i <= 26; i++) { if (cnt[i] == 0) { continue; } if (cnt[i] > maxn) { maxn = cnt[i]; } if (cnt[i] < minn) { minn = cnt[i]; } } //求差 int sub = maxn - minn; //判断 sub 是否时质数(素数) int flag = 1;//旗帜 if (sub == 1 || sub == 0) { flag = 0; goto here; } for (int i = 2; i <= sqrt(sub); i++) { if (sub % i == 0) { flag = 0; break; } } here: if (flag == 1) { printf("Lucky Word\n"); printf("%d\n", sub); } else { printf("No Answer\n"); printf("%d\n", 0); } return 0; }