我觉得用桶排序是比较正规的方法,也是刚学,要多练练,其他常规方法我再看下,后续更新
#include<stdio.h>
#include<math.h>
#include<string.h>
int isPrimeNum(int num)    //判断质数的函数
{
	for (int i = 2; i <= sqrt(num); i++)			
	{
		if (!(num % i))
			return 0;
	}
	if (num != 1 && num != 0)    //注意哦,1和0都不是质数,这基本常识我都忘光了...
		return 1;
	else
		return 0;
}
int main()
{
    //用桶的原理来统计,我也是自学的,上次看到一位大佬有用的,就去查了下用法
	int count[26] = { 0 }, max = 0, i = 0 ,min =0 ;
	char ch = 0;
	while ((ch = getchar()) != '\n')
	{
		if (isupper(ch))                //调用isupper函数判断大写
			ch = ch + 32;
		count[ch - 'a']++;	
		min = ch - 'a';
	}
	
	for (i = 0; i < 26; i++)
	{
		max = count[max] > count[i] ? max : i ; //count[max]是次数,max是具体的字母
		if (count[i] > 0)
			min = count[min] < count[i] ? min : i;
	}
	if (isPrimeNum(count[max] - count[min]))
		printf("Lucky Word\n%d\n", count[max] - count[min]);
	else
		printf("No Answer\n0\n");
	return 0;

}