#include "string.h"
char c[110];
int a[200]={0};
int prime(int n)
{
int i;
if(n<2) return 0;
for(i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
freopen("monkey.in","r",stdin);
freopen("monkey.out","r",stdout);
int i,max=-99999,min=99999,n;
gets(c);
n=strlen(c);
for(i=0;i<n;i++)
{
a[c[i]]++;
if(a[c[i]]>max) max=a[c[i]];
if(a[c[i]]<min) min=a[c[i]];
}
if(prime(max-min))
printf("Lucky Word\n%d",max-min);
else
printf("No Answer\n%d",max-min);
return 0;
}
输出是�
测试数据 #1: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #2: Runtime Error, time=0ms, mem=636KB, score=0
测试数据 #3: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #4: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #5: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #6: Runtime Error, time=0ms, mem=636KB, score=0
测试数据 #7: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #8: Runtime Error, time=0ms, mem=636KB, score=0
测试数据 #9: Runtime Error, time=0ms, mem=640KB, score=0
测试数据 #10: Runtime Error, time=0ms, mem=640KB, score=0
Time = 0ms Mem = 640KB Score= 0
#include "stdio.h"
char a[110];
int f[30],x[110];
int main()
{
int max=0,min=100,n=0,i,j,ans;
scanf("%s",a);
for(i=0;i<=105;i++)
if(a[i]!='\0') n++;
else break;
for(i=0;i<n;i++)
f[a[i]-'a'+1]++;
for(i=1;i<=30;i++)
{
if(f[i]>max) max=f[i];
if(f[i]<min && f[i]) min=f[i];
}
ans=max-min;
for(i=2;i<=100;i++) x[i]=1;
for(i=2;i<=100;i++)
if(x[i])
for(j=i*2;j<=100;j+=i)
x[j]=0;
if(x[ans]) printf("Lucky Word\n%d",ans);
else printf("No Answer\n0");
return 0;
}
那个判断是否是质数那里要开一个数组标记的。。