ที่นี่เราจะมาดูวิธีการคำนวณจำนวน 0 ต่อท้ายสำหรับผลลัพธ์ของแฟคทอเรียลของจำนวนใดๆ ดังนั้นถ้า n =5 แล้ว 5! =120 มี 0 ต่อท้ายเพียงตัวเดียว สำหรับ 20! มันจะเป็นศูนย์ 4 ตัวเท่ากับ 20! =2432902008176640000
วิธีที่ง่ายที่สุดคือการคำนวณแฟคทอเรียลและนับ 0 แต่วิธีนี้ใช้ไม่ได้ผลสำหรับค่า n จำนวนมาก ดังนั้นเราจะปฏิบัติตามแนวทางอื่น เลขศูนย์ต่อท้ายจะอยู่ที่นั่น หากตัวประกอบเฉพาะคือ 2 และ 5 หากเรานับ 2s และ 5s เราก็จะได้ผลลัพธ์ เราจะปฏิบัติตามกฎนี้
ต่อท้าย 0s =การนับ 5s ในตัวประกอบเฉพาะของแฟคทอเรียล(n)

อัลกอริทึม
countTrailingZeros(n)
begin count := 0 for i := 5, (n/i) >= 1, increase i := i * 5, do count := count + (n / i) done return count; end
ตัวอย่าง
#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
int countTrailingZeros(int n) {
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
main() {
int n = 20;
cout << "Number of trailing zeros: " << countTrailingZeros(n);
} ผลลัพธ์
Number of trailing zeros: 4