Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 15
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    19

    [Help] Tìm số nguyên dương a nhỏ nhất thỏa mãn: a^a chia hết N. (Số lớn)

    Cho số nguyên N(2<N<1000.000.000).Tìm số nguyên dương nhỏ nhất sao cho a^a chia hết
    cho N,
    VD:N=9 => Kết quả a=3.
    MỌI NGƯỜI GIẢI GIÚP EM NHÉ!EM ĐANG CẦN GẤP!

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    5
    Ý tưởng thế này nhé. Bạn coi được không:
    + Viết 1 hàm tính số mũ: Somu(a) = a^a (cái này tự viết)
    + Dùng vòng lặp While ... Do để làm:
    i:=2;
    While Somu(i) mod n <> 0 Do
    i:=i+1;
    Write(i);

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    11
    Bạn ơi,bươc đầu tiên tớ chưa hiểu lắm,bạn có thể viết CT phần đó ra đc ko.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    257
    Công thức tính số mũ:
    Mã:
    kq := exp(so_mu * Ln(co_so));
    Ví dụ: a^a
    Mã:
    kq := exp(a*Ln(a));
    Chúc bạn thành công!

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    32
    Ý tưởng nè bạn: Tìm số nhỏ nhất chia hết cho N là số chính phương. Cái này bạn làm được chứ?? Tiếp: lấy căn bậc 2 của số chính phương đó => kết quả cần tìm.

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    6
    nhưng kẹt 1 chỗ:nếu làm như bạn thì phải khai báo cái số chính phương như thế nào đây:
    Var a:integer;n:longint;b:???
    Begin
    Clrscr;
    Repeat
    Write('Nhap so nguyen n= ');readln(n);
    Until (n>2) and (n<1000.000.000);
    For b:=3 to n do
    If (frac(sqrt(b))=0) then
    If b mod n =0 then
    a:=sqrt(b);
    Write(a);
    Readln
    End.
    Chú ý:bài theo ý tưởng này khó xđ 'b' quá.Vì nó có câu lệnh là thuộc 'integer' ,có câu lệnh thuộc 'real'.Tớ ko biết phải sửa ntn?Các bạn giúp tớ nhé!

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Trích dẫn Gửi bởi trungsyk10it
    Ý tưởng thế này nhé. Bạn coi được không:
    + Viết 1 hàm tính số mũ: Somu(a) = a^a (cái này tự viết)
    + Dùng vòng lặp While ... Do để làm:
    i:=2;
    While Somu(i) mod n <> 0 Do
    i:=i+1;
    Write(i);
    Thế này nhé:
    + Hàm tính số mũ:
    For i:=1 to a do tg:=a*a;
    Somu:=tg;

    Còn mấy dòng lệnh dưới chắc bạn hiểu rùi.

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Khai báo longint hay int64(free) là ok mà bạn. Kiểm tra chính phương dùng trunc và sqrt ấy.
    Code của bạn sai rồi, tìm b min chia hết cho N rồi lấy sqrt(b) tức là b chạy từ N trở đi chứ không phải 3->n.
    Còn số chính phương không cần khai báo real đâu bạn. Để kiểm tra chính phương thì thế này: if sqrt(b)=trunc(sqrt(b)) then "là số chính phương".

  9. #9
    Ngày tham gia
    Feb 2016
    Bài viết
    4
    Hình như hôm nay bạn Quyên thi TIN HỌC TRẺ thì phải.

    Tính kết quả của 1 lũy thừa thì nên dùng công thức, đừng nên dùng vòng for. Bởi vì tốn thời gian. Một bài hoàn chính thì cần kết quả đúng và thời gian nằm trong quy định của đề mới ăn được điểm. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    1
    Bài này đơn giản thôi mà. Mình sẽ viết chương trình
    cho bạn

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • 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
  •