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.

Câu hỏi trong lớp Xem thêm