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.

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