Trang chủ Tin Học Lớp 10 Dạ chả là em hơi tò mò bài này,có rất...

Dạ chả là em hơi tò mò bài này,có rất nhiều bài đã có lời giải rùi,nhưng mình muốn cái gì đó mới mẻ chút,nên mình nhờ các bạn giải bài này bằng cách áp dụng sà

Câu hỏi :

Dạ chả là em hơi tò mò bài này,có rất nhiều bài đã có lời giải rùi,nhưng mình muốn cái gì đó mới mẻ chút,nên mình nhờ các bạn giải bài này bằng cách áp dụng sàng nguyên tố eratosthenes ạ Nhập vào 2 in ra là 3137 ạ

image

Lời giải 1 :

uses crt;
var duyet:array[0..1000000000] of boolean;
    i,j,d,k:longint;
    a,x,t,temp:qword;
function Count(n:qword):word;
var d:word;
begin
    d:=0;
    while n<>0 do
       begin
           inc(d);
           n:=n div 10;
       end;
    exit(d);
end;
function nt(n:qword):boolean;
var i:longint;
begin
    if n<2 then exit(false);
    for i:=2 to trunc(sqrt(n)) do
       if n mod i=0 then exit(false);
    exit(true);
end;
begin
    clrscr;
    readln(k);
    fillchar(duyet,sizeof(duyet),true);
    t:=1;
    for i:=2 to trunc(sqrt(1000000)) do
      if duyet[i]=true then
         for j:=0 to 1000000 do
            duyet[sqr(i)+i*j]:=false;
    d:=0; x:=2; a:=2;
    while d<k do
       begin
           inc(x);
           while duyet[x]=false do inc(x);
           t:=1;
           for j:=1 to Count(x) do
               t:=t*10;
           temp:=a*t+x;
           if nt(temp)=true then inc(d);
           a:=x;
       end;
    writeln(temp);
readln;
end.

Thảo luận

Lời giải 2 :

#Codedaodeom

uses crt;
var k,max,m,n,t,d:longint; a:array[1..120000000]of boolean;
b:array[1..10000000]of longint; s1,s2:string;
function nt(a:longint):boolean;
var i:longint;
begin
   i:=2;
   while(a>1)and(a mod i<>0)do inc(i);
   nt:=i=a;
end;
procedure eratos;
    var
       i,j : longint;

    begin
       a[1]:=false;
       for i:=2 to max do
         a[i]:=true;
       for i:=2 to max div 2 do
         if a[i] then
           for j:=2 to max div i do
             a[i*j]:=false;
       j:=0;
       for i:=1 to max do
          if a[i] then
           begin
              inc(m);
              b[m]:=i; 
           end;
    end;
begin 
clrscr;
   readln(k);
   max:=120000;
   eratos;
   d:=1; n:=1;
   t:=23; 
   while d<k do  
      begin
         inc(n,2);
         str(b[n],s1); 
         str(b[n+1],s2);
         val(s1+s2,t);
         if nt(t) then inc(d); 
      end;
   writeln(t);
readln 
end.

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ự 10

Lớp 10 - Năm thứ nhất ở cấp trung học phổ thông, năm đầu tiên nên có nhiều bạn bè mới đến từ những nơi xa hơn vì ngôi trường mới lại mỗi lúc lại xa nhà mình hơn. Được biết bên ngoài kia là một thế giới mới to và nhiều điều thú vị, một trang mới đang chò đợi chúng ta.

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