Trang chủ Tin Học Lớp 8 Hai số nguyên tố p và q được gọi là...

Hai số nguyên tố p và q được gọi là cặp số nguyên tố sinh đôi nếu p - q = 2. Ví dụ: Các cặp số nguyên tố sau là cặp số nguyên tố sinh đôi: (3,5), (11,13), (17,

Câu hỏi :

Hai số nguyên tố p và q được gọi là cặp số nguyên tố sinh đôi nếu p - q = 2. Ví dụ: Các cặp số nguyên tố sau là cặp số nguyên tố sinh đôi: (3,5), (11,13), (17,19). Cho số nguyên dương n Yêu cầu: Tìm tất cả các cặp số nguyên tố sinh đôi nhỏ hơn n. Dữ liệu: Một dòng duy nhất ghi số n (5 n 100000) Kết quả: Ghi trên nhiều dòng, mỗi dòng là cặp số nguyên tố thỏa mãn (cách nhau bởi một dấu cách). Dòng cuối cùng ghi ra số lượng các cặp tìm được Ví dụ: twinprime.inp twinprime.out 30 3 5 5 7 11 13 17 19 4

Lời giải 1 :

uses crt;
var n:longint;f:text;
function NT(a:longint):boolean;
var dem,i:longint;
        begin
         dem:=0;
         for i:=1 to a do if(a mod i=0)then inc(dem);
         NT:=dem=2;
        end;
procedure doc;
        begin
         assign(f,'twinprime.inp');
         reset(f);
         readln(f,n);
         close(f);
        end;
procedure ghi;
var i,dem:longint;
        begin
         assign(f,'twinprime.out');
         rewrite(f);
         dem:=0;
         i:=3;
         while (i+2)<=n do
                begin
                 if(i+2<n)then
                        begin
                         if(NT(i)and(NT(i+2)))then begin writeln(f,i,' ',i+2); inc(dem); inc(i,2); end else inc(i);
                        end else break;
                end;
         write(f,dem);
         close(f);
        end;
begin
 clrscr;
  doc;
  ghi;
 readln;
end.

Thảo luận

Lời giải 2 :

var n,k,d:longint;
    p:array[0..100000] of longint;
procedure sangnt;
var i,j:longint;
begin
          p[0]:=1;
          p[1]:=1;
          for i:=2 to trunc(sqrt(n)) do
          begin
                if p[i]=0 then
                begin
                        j:=i*i;
                        while j<=n do
                        begin
                                p[j]:=1;
                                j:=j+i;
                        end;
                end;
          end;
end;
procedure giai;
var i:longint;
begin
        d:=0;
        for i:=2 to n-2 do
        begin
                if ((p[i]=0) and (p[i+2]=0)) then
                begin
                        writeln(i,' ',i+2);
                        inc(d);
                end;
        end;
        writeln(d);
end;
begin
        assign(input,'twinsnumber.inp'); reset(input);
        assign(output,'twinsnumber.out'); rewrite(output);
        read(n);
        sangnt;
        giai;
end.

//ProDev

//Thuật toán: sàng nguyên tố thôi:)

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK