讨论 / 怎么会错,不科学
213超人 2014-04-13 01:17:15
点我顶贴 收藏 删除
var s:string;

i,j:longint;

a:array[0..30]of longint;bo:boolean;

function check(x:longint):boolean;

var i:longint;

begin

if x<2 then exit(false);

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

if x mod i=0 then exit(false);

exit(true);

end;

procedure main;

begin

for i:=1 to length(s) do

inc(a[ord(s[i])-96]);

for i:=1 to 25 do

for j:=i+1 to 26 do

if a[i]>a[j] then

begin

a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];

end;

for i:=1 to 26 do if a[i]<>0 then begin

if check(a[26]-a[i]) then

begin

writeln('Lucky Word');

exit;

end;

end;

writeln('No Answer');

end;

begin

readln(s);

main;

end.

#1 yumaosheng@2014-05-21 06:36:06
回复 删除
var

max,min:integer;

a:array['a'..'z'] of integer;

j:integer;

i:char;

function zs(s:integer):boolean;

var

i:integer;

begin

if s<=1 then exit(false);

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

if s mod i=0 then exit(false);

exit(true);

end;

begin

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

repeat

read(i);

a[i]:=a[i]+1;

until (ord(i)<97) or (ord(i)>122);

max:=0; min:=maxint;

for i:='a' to 'z' do

if a[i]<>0 then

begin

if a[i]>max then max:=a[i];

if a[i]<min then min:=a[i];

end;

j:=max-min;

if zs(j) then begin writeln('Lucky Word'); writeln(j); end

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

end.

查看更多回复
提交回复