思路就是按a-z顺序计数,然后求maxmin再判断质数```c
#include
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int a[26],maxn,minn,i,n,t;
for(i=0;i<26;i++)
a[i]=0;
char s[100];
gets(s);
for(i=0;i<strlen(s);i++)
a[s[i]-'a']=a[s[i]-'a']+1;
minn=a[s[0]-'a'];
maxn=a[s[0]-'a'];
for(i=0;i<26;i++)
{
if(a[i]>0&&a[i]<minn)
minn=a[i];
else if(a[i]>maxn)
maxn=a[i];
}
n=maxn-minn;
t=0;
for(i=2;i<=floor(sqrt(n));i++)
if((n%i)==0)
t=t+1;
if(t==0)
cout<<"Lucky Word\n"<<n<<endl;
else
cout<<"No Answer\n"<<0<<endl;
system("pause");
return 0;
}