用getchar()一个个从输入流取字符居然超时。
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
bool isPrime(int n)
{
if(n<2)return false;
for(int i = 2; i < (int)sqrt((double)n)+1; i++)
if(n%i==0)return false;
return true;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
getchar();
int A[26];
char ch[100+10];
memset(A, 0, 26*sizeof(int));
scanf("%s",&ch);
for(int i = 0; i < strlen(ch); i++)
{
A[ch[i]-'a']++;
}
int max = 0, min = 1000;
for(int i = 0; i < 26; i++)
{
if(A[i]>max)max=A[i];
if(A[i]<min&&A[i])min=A[i];
}
if(isPrime(max-min))
{
printf("Lucky Word\n%d\n",max-min);
}
else
{
printf("No Answer\n0\n");
}
}
return 0;
}