Nè bạn
Bete nói kĩ vậy rồi mà vẫn không làm được là sao?
Nè bạn
Bete nói kĩ vậy rồi mà vẫn không làm được là sao?
Đây là bài của em mọi người xem đúng không? Em thực ra chẳng hiểu những gì mọi người viết bên trên cả, đọc thấy rắc rồi nên thử theo các của mình.
Code:Uses Crt; Var i,m,n,M2,Ngt,k: longint;{Ngt là N giai thừa} Begin Clrscr; Write('Nhap gia tri M:');readln(m); Write('Nhap gia tri N:');readln(n); Ngt:=1; M2:=1; k:=1; For i:=1 to n do Ngt:=Ngt*i; Repeat M2:=M2*m; k:=k+1 Until ((Ngt mod M2 = 0) and (Ngt mod (M2*m) <> 0); write(So mu k la:',k); readln End.
Tiếc là chưa có dịp xem hết mấy bài trả lời của các bạn khác nhưng xin góp ý cách giải như sau:
******
Chỉ nói trường hợp k nguyên dương, trường hợp k âm tương tự
N! chia hết cho M^k mà không chia hết cho M^(k+1) khi và chỉ khi N! chia cho M^k được một số không chia hết cho M
Vậy ta lấy N! chia cho M, chia đến khi không chia hết thì số lần chia là k
******
Cách làm này cũng khá nhanh và cũng là cách đơn giản nhất
Bookmarks