10.04.2017

Số siêu nguyên tố

HSG Lâm Đồng 2011 - Bài 1/3
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố.
Ví dụ : 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Em hãy viết chương trình tìm các số siêu nguyên tố có N chữ số (0 < N <10) và số lượng các số tìm được.
Dữ liệu vào: cho trong File SIEUNT.INP chứa số N.
Kết quả: ghi ra file SIEUNT.OUT gồm các dòng:
- Dòng 1: số lượng các số siêu nguyên tố có N chữ số.
- Dòng tiếp theo liệt kê các số siêu nguyên tố tìm được.
Ví dụ:
     SIEUNT.INP          SIEUNT.OUT
              4                          16
                                          2333   2339   2393   2399
                                          2939   3119   3137   3733
                                          3739   3793   3797   5939
                                          7193   7331   7333   7393

                                              Giải

var a,b,c,e,h,n,i,j,k,t: longint; + chr$(13) + chr$(10) + _
    m,p: array[0..1000] of longint;
    f: text;
Begin
     assign(f,'SIEUNT.INP');
     reset(f);
     readln(f,n);
     close(f);
     assign(f,'SIEUNT.OUT');
     rewrite(f);
     a:=1;
     for i:=1 to n do a:=a*10;
     b:=a-1;
     a:=a div 10;
     for i:=a to b do
         begin
              c:=i; t:=0; e:=0;
              repeat
                    for j:=1 to c do if (c mod j)=0 then e:=e+1;
                    if e=2 then t:=t+1;
                    c:=(c div 10);
                    e:=0;
              until c=0;
              if t=n then
                 begin + chr$(13) + chr$(10) + _
                      k:=k+1;
                      m[k]:=i;
                 end;
         end;
     writeln(f,k);
     for i:=1 to k do write(f,m[i],' ');
     close(f);
End.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét