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. Viết chương trình sử dụng chương trình con.
1 câu trả lời
Program BTT;
Uses crt;
Const Max=1000000;
Var A:array[1..max] of longint;
n: longint;
Function kt(n: longint): boolean;
Var i, k: longint;
Begin
If (n=2) or (n=3) then exit(true);
If (n<2) or (n mod 2=0) or (n mod 3=0) then exit(false);
k:=5;
While k<=trunc(sqrt(n)) do
Begin
If (n mod k=0) or (n mod (k+2)=0) then exit(false);
Inc(k,6);
End;
exit(true);
End;
Function tong(n: longint): longint;
Var i, s: longint;
st: string;
Begin
s:=0;
Str(n,st);
For i:=1 to length(st) do s:=s+sqr(ord(st[i])-48);
exit(s);
End;
Procedure XL;
Var i, dem: longint;
Begin
dem:=0;
For i:=2 to max do
If kt(tong(i)) then
Begin
Inc(dem);
A[dem]:=i;
End;
While not eof do
Begin
Readln(n);
Writeln(a[n]);
End;
End;
Begin
Clrscr;
XL;
Readln;
End.