Trang 1 / 3 123 LastLast
Hiển thị kết quả từ 1 đến 10 / 28
  1. #1
    Tham gia
    15-11-2010
    Bài viết
    38
    Like
    0
    Thanked 2 Times in 2 Posts

    Tệ thật ! Số siêu nguyên tố

    số siêu nguyên tố là số mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố
    vd: 2333 là 1 số siêu nguyên tố có 4 chữ số vì 233, 23, 2 cũng là các số nguyên tố.
    Cho số nguyên dương N (0<N<10) đưa ra các số siêu nguyên tố có N chữ số cùng số các số đó.
    vd: Với N = 4
    có 16 số
    2333, 2339, 2393, 2399, 2939, 3119, 3137, 3733, 3739, 3797, 5939, 7193, 7331, 7333, 7393.
    Quote Quote

  2. #2
    Tham gia
    27-06-2011
    Bài viết
    46
    Like
    0
    Thanked 1 Time in 1 Post
    Không hiểu đề bài lắm ? Viết soft để chỉ ra số siêu nguyên tố hay chỉ ra được 1 điều thụ vị ?

  3. #3
    Tham gia
    05-08-2010
    Bài viết
    313
    Like
    9
    Thanked 73 Times in 69 Posts
    Bài này bạn nên dùng quay lui để giải, đầu tiên xét tất cả khả năng mà chữ số ngoài cùng (chữ số thứ 1) có thể nhận, tiếp theo xét đến cs thứ 2,... cho đến cs thứ n.
    Làm theo cách này sẽ nhanh hơn duyệt từ 10..0 -> 9..99 rất nhiều

  4. #4
    Tham gia
    29-05-2011
    Location
    Hà Nội
    Bài viết
    1,826
    Like
    1,420
    Thanked 47 Times in 42 Posts
    Quote Được gửi bởi bin yeu View Post
    số siêu nguyên tố là số mà khi bỏ 1 số tùy ý các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố
    vd: 2333 là 1 số siêu nguyên tố có 4 chữ số vì 233, 23, 2 cũng là các số nguyên tố.
    Cho số nguyên dương N (0<N<10) đưa ra các số siêu nguyên tố có N chữ số cùng số các số đó.
    vd: Với N = 4
    có 16 số
    2333, 2339, 2393, 2399, 2939, 3119, 3137, 3733, 3739, 3797, 5939, 7193, 7331, 7333, 7393.
    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.

  5. 2 thành viên Like bài viết này:


  6. #5
    Tham gia
    25-06-2011
    Location
    Ninh Bình
    Bài viết
    165
    Like
    4
    Thanked 57 Times in 52 Posts
    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.
    Code của bạn trâu bó quá!

  7. Thành viên Like bài viết này:


  8. #6
    Tham gia
    29-05-2011
    Location
    Hà Nội
    Bài viết
    1,826
    Like
    1,420
    Thanked 47 Times in 42 Posts
    Quote Được gửi bởi haplinhavxt View Post
    Code của bạn trâu bó quá!
    Sao hả bạn, chỉ hơi dài chút thôi mà !

  9. #7
    Tham gia
    05-08-2010
    Bài viết
    313
    Like
    9
    Thanked 73 Times in 69 Posts
    Quote Được gửi bởi auauau97 View Post
    Sao hả bạn, chỉ hơi dài chút thôi mà !
    Ko phải đoạn code dài mà là thuật toán bạn sử dụng trâu bò quá. Nếu duyệt hết các số có n chữ số như vậy thì rất mất thời gian (bạn chạy thử với n = 10 xem), ko thể ăn hết test của bài.

  10. #8
    Tham gia
    29-05-2011
    Location
    Hà Nội
    Bài viết
    1,826
    Like
    1,420
    Thanked 47 Times in 42 Posts
    Quote Được gửi bởi HGMinh95 View Post
    Ko phải đoạn code dài mà là thuật toán bạn sử dụng trâu bò quá. Nếu duyệt hết các số có n chữ số như vậy thì rất mất thời gian (bạn chạy thử với n = 10 xem), ko thể ăn hết test của bài.
    Thế thì cách làm của bạn như thế nào ?
    Mà n<10 nhé bạn(để bài)

  11. #9
    Tham gia
    18-06-2011
    Bài viết
    103
    Like
    0
    Thanked 3 Times in 3 Posts
    Có số nguyên tố rồi. Lại có cả số siêu nguyên tố nữa. Đã thế còn viêt được code tìm được số siêu nguyên tố nữa

  12. #10
    Tham gia
    25-06-2011
    Location
    Ninh Bình
    Bài viết
    165
    Like
    4
    Thanked 57 Times in 52 Posts
    Quote Được gửi bởi camaptrangvn View Post
    Có số nguyên tố rồi. Lại có cả số siêu nguyên tố nữa. Đã thế còn viêt được code tìm được số siêu nguyên tố nữa
    Bạn mới học Tin à đâu mà hỏi hay vậy?

  13. Thành viên Like bài viết này:


Trang 1 / 3 123 LastLast

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
  •