桶排序
#include<stdio.h> #include<string.h> #include<math.h> int isPrimeNum(int num) { for (int i = 2; i <= sqrt(num); i++) //1不是质数 if (!(num % i)) return 0; if (num != 1 && num != 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)) ch = islower(ch); 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; }