เราต้องหาจำนวนธรรมชาติตัวแรกที่แฟคทอเรียลหารด้วย x ลงตัว x ถูกกำหนดโดยผู้ใช้ ดังนั้นหาก x =16 ผลลัพธ์จะเป็น 6 เป็น 6! mod 16 =0 เราจะใช้วิธีการทั่วไปในการแก้ปัญหานี้ นับซ้ำ 1!, 2!, …. น! และตรวจสอบการหารด้วย x หากโมดูลัสเป็น 0 ให้หยุดและส่งคืนตัวเลข
ตัวอย่าง
#include<iostream> using namespace std; int getNumber(int x) { int fact = 1; int i = 0; while(fact % x != 0){ i++; fact = fact * i; } return i; } int main() { int x = 16; cout << "Minimum value of N is: " << getNumber(x); }
ผลลัพธ์
Minimum value of N is: 6