Trang 3 / 3 FirstFirst 123
Hiển thị kết quả từ 21 đến 28 / 28
  1. #21
    Tham gia
    01-09-2009
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    Gửi mọi người code của m, chạy chưa đến 0.5s

    Const H:array[1..4] of byte=(1,3,7,9);
    var i,d,c:int64;
    j:byte;
    Q:Array[1..100000000] of int64;
    k,N:int64;
    Function ktsnt(K:int64):boolean;//(k>2)
    Var i:int64;
    Begin
    if K mod 2= 0 then exit(false);
    i:=3;
    While i<=trunc(sqrt(K)) do
    begin
    if K mod i=0 then exit(false);
    inc(i,2);
    end;
    exit(true);
    end;

    Begin
    Write('Nhap N: ');readln(N);
    Q[1]:=2;Q[2]:=3;Q[3]:=5;Q[4]:=7;
    d:=1;c:=4;
    While (Q[c]<N)and(d<=c) do
    begin
    K:=Q[d];inc(d);
    For j:=1 to 4 do
    if ktsnt(K*10+H[j]) then
    begin
    inc(c);
    q[c]:=k*10+h[j];
    end;
    end;
    Write('Cac so sieu NT: ');
    i:=1;
    While (Q[i]<=N)and(i<=c) do
    begin
    Write(Q[i],' ');
    inc(i);
    end;
    readln;
    end.

  2. #22
    Tham gia
    11-10-2011
    Bài viết
    18
    Like
    0
    Thanked 2 Times in 2 Posts
    thế còn về số nguyên tố ghép thì sao nhỉ? chứng minh rằng mọi số tự nhiên chẵn lớn hơn 2 luôn là tổng của 2 số nguyên tố. đưa ra màn hình 2 số nguyên tố đó. VD 8=3+5;12=5+7;...

  3. #23
    Tham gia
    29-06-2011
    Bài viết
    24
    Like
    1
    Thanked 12 Times in 12 Posts
    bài này giới hạn 1<n<10, vì vậy dùng mảng hằng là chạy nhanh nhất =))

  4. #24
    Tham gia
    19-12-2013
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    j

    cac ban co the chj cho t doan ma kiem tra so sieu ngt k?

  5. #25
    Tham gia
    30-05-2014
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    dung mang con kiem tra so nguyen to
    dung vong while (n div 10<>0) and (nt) then
    n:=n div 10;
    if n div 10=0 then write(' la so snt') else write(' khong phai so snt');

  6. #26
    Tham gia
    29-05-2011
    Location
    Hà Nội
    Bài viết
    1,826
    Like
    1,420
    Thanked 47 Times in 42 Posts
    Lâu lắm rồi mới cm lại ở ddth , bài này trước mình làm trâu bò như cách ở page 1, giờ khôn hơn rồi, post lại bài mới, cách này nhanh hơn dùng đệ quy , thời gian khoảng 1s thôi
    Code:
    Uses crt;
    Var
      n,dem:byte;
      k,i:longint;
    {-------------------------------------------}
    Function NT(n:longint):boolean;
    Var
      i:longint;
    Begin
      NT:=False;
      If n<2 then Exit;
      For i:=2 to round(sqrt(n)) do
        If n mod i=0 then Exit;
      NT:=True;
    End;
    {-------------------------------------------}
    Procedure Find(x:longint);
    Var
      i:longint;
    Begin
      If NT(x) then
        If x>k then
          Begin
            Write(x:10);
            dem:=dem+1;
          End
        Else
          For i:=1 to 9 do
            If (i<>5) and (i mod 2<>0) then Find(10*x+i);
    End;
    {-------------------------------------------}
    BEGIN
      Clrscr;
      Write('Nhap so n:');
      Readln(n);
      k:=1;
      For i:=1 to (n-1) do
        k:=10*k;
      Find(1); Find(2); Find(3); Find(5); Find(7);
      Writeln;
      Writeln('Co ',dem,' so sieu nguyen to co ',n,' chu so.');
      Readln;
    END.

  7. #27
    Tham gia
    24-06-2014
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn giải thích hộ mình phần kiểm tra số SNT nhé. Mình k hiểu lắm
    Quote Được gửi bởi auauau97 View Post
    Code:
    Uses crt;
    Var
      a,b:array[1..100] of longint;
      n,i,k,ka,kb,cs:byte;
    {-----------------------------------------------------------------------------------------------------------------------------}
    Function NT(n:longint):boolean;
    Var
      i:longint;
    Begin
      If (n=0) or (n=1) then
        NT:=False
      Else
        Begin
          i:=2;
          While (n mod i<>0) and (i<=sqrt(n)) do
            i:=i+1;
          If i> sqrt(n) then NT:=True
          Else NT:=False;
        End;
    End;
    {-----------------------------------------------------------------------------------------------------------------------------}
    BEGIN
      CLrscr;
      Write('Nhap so n:');
      Readln(n);
      ka:=1;
      a[ka]:=0;
      For i:=1 to n do
        Begin
          kb:=0;
          For k:=1 to ka do
            For cs:=0 to 9 do
              If NT(a[k]*10+cs) then
                Begin
                  kb:=kb+1;
                  b[kb]:=a[k]*10+cs;
                End;
          ka:=kb;
          For k:=1 to ka do
            a[k]:=b[k];
        End;
      For k:=1 to ka do
        Write(a[k]:10);
      Writeln;
      Writeln('Co tat ca ',ka,' so sieu nguyen to co ',n,' chu so.');
      Readln;
    END.

  8. #28
    Tham gia
    11-05-2018
    Location
    Nhân Bình-Lý Nhân-Hà Nam
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    tương tự vói a[2]...ak

Trang 3 / 3 FirstFirst 123

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •