Một số được gọi là số đẹp nếu tổng bình phương các chữ số của nó là một số nguyên tố. Các số đẹp được đánh số theo thứ tự tăng dần của giá trị từ 1 trở đi. Cho số nguyên n tìm số đẹp thứ n. Hãy viết chương trình có sử dụng chương trình con.
1 câu trả lời
Const Fi='BEAUTY.INP';
Fo='BEAUTY.OUT';
Var f,g: text;
i,n,d,s: longint;
Function ngto(a: longint): boolean;
Var i: longint;
Begin
If a<2 then exit(false);
For i:=2 to a div 2 do
If a mod i = 0 then exit(false);
exit(true);
End;
Function bpcs(b: longint): longint;
Var s: longint;
Begin
s:=0;
While b<>0 do
Begin
s:=s+sqr(b mod 10);
b:=b div 10;
End;
bpcs:=s;
End;
Begin
Assign(f,Fi); Reset(f);
Assign(g,Fo); Rewrite(g);
Read(f,n);
d:=0; s:=10;
While d<n do
Begin
If ngto(bpcs(s)) then inc(d);
inc(s);
End;
Writeln(g,s-1);
Close(f);
Close(g);
End.