Trang 2 / 3 FirstFirst 123 LastLast
Hiển thị kết quả từ 11 đến 20 / 23
  1. #11
    Tham gia
    19-07-2008
    Location
    CĐV-Phú Tân-Cà Mau
    Bài viết
    124
    Like
    0
    Thanked 2 Times in 2 Posts
    Mình có ý tưởng thế này, nhưng không biết có chạy nỗi với dữ liệu lớn không.
    Các bạn xem rồi cho nhận xét nhé

    B1: Viết 1 hàm kiểm tra snt
    B2: Viết hàm kiểm tra số siêu nguyên tố:
    -----Lần lượt lấy div của số đó với 10. Kt số nhận được có là số nt.
    B3: Cho chạy từ 1 đến 10^8, nếu là số snt thì in ra

  2. #12
    Tham gia
    07-12-2008
    Bài viết
    25
    Like
    0
    Thanked 0 Times in 0 Posts
    Dùng sàng nguyên tố Sàng nguyên tố Eratosten hoặc Atkin. 10^8 có thể dưới 2s

  3. #13
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    Quote Được gửi bởi nhat_truong View Post
    Mình có ý tưởng thế này, nhưng không biết có chạy nỗi với dữ liệu lớn không.
    Các bạn xem rồi cho nhận xét nhé

    B1: Viết 1 hàm kiểm tra snt
    B2: Viết hàm kiểm tra số siêu nguyên tố:
    -----Lần lượt lấy div của số đó với 10. Kt số nhận được có là số nt.
    B3: Cho chạy từ 1 đến 10^8, nếu là số snt thì in ra
    k ổn =.=! , ct sẽ chạy rất lâu
    for i:=1 to 100000000 do ( chỉ cần câu lệnh này thôi , ct đã chạy rất lâu , chưa kể còn phải kt số siêu nguyên tố lồng trong đó là kt số nguyên tố nữa )

    [=========> Bổ sung bài viết <=========]

    Quote Được gửi bởi lqhuy93 View Post
    Dùng sàng nguyên tố Sàng nguyên tố Eratosten hoặc Atkin. 10^8 có thể dưới 2s
    cách nì khả quan hơn
    Được sửa bởi hang_vt lúc 20:05 ngày 16-06-2009 Reason: Bổ sung bài viết

  4. #14
    Tham gia
    14-06-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    vấn đề của bài này là số quá lớn, em đã làm thử nhưng chỉ được tới 5 chữ số thui, lớn hơn thì rất lâu

    bạn nào giới thiệu các dùng sàng số nt dc ko

    em đang rất cần đề tin học trẻ ko chuyên bảng C, ai có post lên giùm với thứ 5 tuần này em thi rùi

  5. #15
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    Quote Được gửi bởi h2vn_com_anhtuan View Post
    vấn đề của bài này là số quá lớn, em đã làm thử nhưng chỉ được tới 5 chữ số thui, lớn hơn thì rất lâu

    bạn nào giới thiệu các dùng sàng số nt dc ko

    em đang rất cần đề tin học trẻ ko chuyên bảng C, ai có post lên giùm với thứ 5 tuần này em thi rùi
    hì hì , thì làm bảng B đi đã ( đề tỉnh BR-VT -2008 )
    sàng nguyên tố : chạy từ 1 -> 10^8 số nào là nguyên tố thì lưu và đánh dấu bội của số đó k phải là số nguyên tố ( đến số đó thì k cần kt nữa ) -> chạy nhanh hơn

  6. #16
    Tham gia
    19-07-2008
    Location
    CĐV-Phú Tân-Cà Mau
    Bài viết
    124
    Like
    0
    Thanked 2 Times in 2 Posts
    Ai giúp mình với, máy mình dạo này lạ lắm
    Mình khai báo: P:Array[1..max]of Boolean;
    Nếu max>=10^5 thì máy báo lỗi: Ordinal type expected
    Chả biết đó là lỗi gì, nhưng mình nghĩ đó không phải là lỗi tràn số

    [=========> Bổ sung bài viết <=========]

    Mình thử làm theo cách dùng sàng gì đó nhé:
    Code:
    Program so_snt;
    Uses crt;
    Const max = 10000;
    Var P: Array[1..max] of Boolean;  {P[i]=false n?u i không th? là s? siêu nguyên t?}
        i,j: Longint;
    
    Function ktnt(n:Longint): Boolean;
    Var i: Longint;
    Begin
         ktnt:=False;
         For i:=2 to trunc(sqrt(n)) do
             If n mod i = 0 then exit;
         ktnt:=true;
    End;
    
    Function ktsnt(n:Longint): Boolean;
    Begin
         ktsnt:=False;
         While n>0 do
               If ktnt(n) then n:=n div 10
               Else exit;
         ktsnt:=True;
    End;
    
    BEGIN
        Clrscr;
        Writeln('Cac so sieu nguyen to < 10^4: ');
        Fillchar(P,sizeof(P),True);
        For i:=2 to max do
            If P[i] and ktsnt(i) then
               Begin
                    Write(i:8);
                    j:=i;
                    While j<=max do
                          Begin
                              P[j]:=False; {Ðánh d?u các u?c c?a i không th? là ssnt}
                              inc(j,i);
                          End;
               End;
        Readln
    END.
    Được sửa bởi nhat_truong lúc 11:40 ngày 17-06-2009 Reason: Bổ sung bài viết

  7. #17
    Tham gia
    09-08-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi nhat_truong View Post

    Code:
    
    Function ktsnt(n:Longint): Boolean;
    Begin
         ktsnt:=False;
         While n>10 do
               If ktnt(n) then n:=n div 10
               Else exit;
         ktsnt:=True;
    End;
    Bạn h2vn_com_anhtuan thi rồi post bài lên cho mình và các bạn # tham khảo đc k?

  8. #18
    Tham gia
    19-07-2008
    Location
    CĐV-Phú Tân-Cà Mau
    Bài viết
    124
    Like
    0
    Thanked 2 Times in 2 Posts

    Giận dữ !

    Quote Được gửi bởi hang_vt View Post
    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ụ 5371 là một số siêu nguyên tố có 4 chữ số vì 537, 53, 5 cũng là các số nguyên tố.

    p/s : bảng B ấy nhá =.=!
    Đính chính: 537 không là số nguyên tố

    [=========> Bổ sung bài viết <=========]

    Quote Được gửi bởi qhuyqhuy View Post
    Bạn h2vn_com_anhtuan thi rồi post bài lên cho mình và các bạn # tham khảo đc k?
    Được gửi bởi nhat_truong

    Code:
    Function ktsnt(n:Longint): Boolean;
    Begin
         ktsnt:=False;
         While n>10 do
               If ktnt(n) then n:=n div 10
               Else exit;
         ktsnt:=True;
    End;
    Bài của mình để n>0 là đúng rồi, sao bạn lại sửa thành n>10.
    Test thử đi, VD: 41 không là số siêu nguyên tố, nhưng ct của bạn lại in ra
    Được sửa bởi nhat_truong lúc 11:43 ngày 23-06-2009 Reason: Bổ sung bài viết

  9. #19
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    bài thi của tp mình :
    có n cái bánh n<100 , m cái túi m<n , hãy in ra tất cả cách chia n cái bánh vào m cái túi sao cho số bánh trong mỗi túi khác 0 và khác nhau , đếm xem có bao nhiều cách chia
    đó là bài 2 , 2 bài kia không khó

  10. #20
    Tham gia
    09-05-2008
    Bài viết
    47
    Like
    0
    Thanked 0 Times in 0 Posts
    mọi người cho mình hỏi, mình xem mấy bài giải trong bộ đề pascal của mình thì thấy có 1 đoạn là :
    Code:
    procedure nhap(ch:char;var spt:byte);
    begin
       repeat
         write('nhap so phan tu cua mang',ch,':');
         {$I-}readln(spt);{$I+}
       until (IoResult=0) and (spt>0) and (spt<max);
    end;
    ai nói cho mình ý nghĩa của câu lệnh IoResult=0 là j dc k?mà trong toàn bộ bài giải cũng k thấy khai báo 1 biến nào gọi là IoResult cả

Trang 2 / 3 FirstFirst 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
  •