讨论 / 急急急 最后一组过不了、
zsx1 2009-06-02 02:11:00
点我顶贴 收藏 删除
program monkey;

var a,b:array[97..122] of integer; x,n:integer; st:string;

function pan(x1:integer):boolean;

var i:integer;

begin

pan:=true;

for i:=2 to trunc(sqrt(x1))do

if x1 mod i=0 then begin pan:=false;break;end;

end;

begin

read(st);n:=length(st);

for x:=1 to n do

inc(a[ord(st[x])]);b:=a;

for x:=98 to 122 do

if (b[97]>b[x])and(b[x]<>0) then b[97]:=b[x];if b[97]=0 then

b[97]:=1;for x:=98 to 122 do

if (a[97]<a[x])and(a[x]<>0) then a[97]:=a[x]; x:=a[97]-b[97]; if x>1 then begin

if pan(x)=true then begin writeln(’Lucky Word’);write(x);end;

if pan(x)=false then begin writeln(’No Answer’);write(0);end; end;

if x<2 then begin writeln(’No Answer’);write(0);end;

end.

#1 caiweiwenjs@2009-06-01 06:06:00
回复 删除
你在判断是否为质数的时忽略了,x1=1和x1=0不是质数,x1=2是质数.
#2 caiweiwenjs@2009-06-01 06:15:00
回复 删除
我错了,没注意看下面的程序.
#3 小小小学生@2009-06-02 02:11:00
回复 删除
program li;

var i,j,t,maxn,minn,ans:longint;

s:string; ch:char;

a:array[’a’..’z’] of longint;

begin

readln(s); maxn:=0; minn:=maxlongint;

fillchar(a,sizeof(a),0);

for i:=1 to length(s) do inc(a[s[i]]);

for ch:=’a’ to ’z’ do

begin

if a[ch]>maxn then maxn:=a[ch];

if (a[ch]<minn) and (a[ch]<>0) then minn:=a[ch];

end;

ans:=maxn-minn;

if (ans=0) or (ans=1) then

begin

writeln(’No Answer’);

writeln(0);

end

else

begin

j:=1; t:=2;

while (j=1) and (t<=ans div 2) do

begin

inc(t);

if ans mod t=0 then j:=0;

end;

if j=1 then begin writeln(’Lucky Word’); writeln(ans); end

else begin writeln(’No Answer’); writeln(’0’); end;

end;

end.

查看更多回复
提交回复