Viết chương trình tìm số M nhỏ nhất sao cho M! có ít nhất N chữ số 0 tận cùng Input: Số nguyên dương N (1 ≤ N ≤ 10^16). Dữ liệu luôn đảm bảo có kết quả. Output: Một số nguyên dương M là kết quả cần tìm.

2 câu trả lời

uses crt;
type int = qword;
var n: int;

function calc(g: int): int;
var res: int;
begin
    res:=0;
    while g <> 0 do
        begin
            g:=g div 5;
            inc(res, g);
        end;
    exit(res);
end;

function solve(l, r: int): int;
var mid: int;
begin
    if r - l <= 1 then exit(r div 5 * 5);
    mid:=(l + r) div 2;
    if calc(mid) < n then exit(solve(mid + 1, r));
    exit(solve(l, mid));
end;

begin
    clrscr;
    readln(n);
    writeln(solve(0, 5 * n));
end.

Cày trâu ạ 🐃🐃

#include <bits/stdc++.h>
using namespace std;
long long t,n,k,d=0,m,i;
int main()
{
 cin>>n;
 for (i=1; k<n; i++){
  m=i;
  k=0;
  while (m>0){
   m=m/5;
   k+=m;
  }
  if (d==5) d=1; else d++; 
 }
 cout<<i-1;
}

Câu hỏi trong lớp Xem thêm