ตัวเลขที่คาดเดายากคือตัวเลข โดยที่ผลรวมของแฟคทอเรียลของตัวเลขนั้นเท่ากับตัวเลขนั้นเอง
ตัวอย่าง
- 123!=1!+2!+3!
=1+2+6 =9
ในที่นี้ 123 ไม่ใช่ตัวเลขที่คาดเดายากเพราะผลรวมของแฟคทอเรียลของหลักไม่เท่ากับตัวตัวเลขเอง
- 145!=1!+4!+5!
=1+24+120
=145
ในที่นี้ 145 เป็นตัวเลขที่คาดเดายากเพราะผลรวมของแฟคทอเรียลของหลักจะเท่ากับตัวเลขนั้นเอง
ตรรกะที่เราใช้ค้นหา ว่าตัวเลขที่ให้มาแรงหรือไม่ เป็นดังนี้ −
ในขณะที่(n){ i =1,fact =1; rem =n % 10; ในขณะที่ (i <=rem) { ข้อเท็จจริง =ข้อเท็จจริง * ผม; ผม++; } sum =ผลรวม + ข้อเท็จจริง; n =n / 10;}if(sum ==temp) printf("%d is a strong number\n",temp);else printf("%d is not a strong number\n",temp);ก่อน>โปรแกรม
ต่อไปนี้คือโปรแกรม C เพื่อค้นหาว่าตัวเลขที่ให้มาแรงหรือไม่ -
#includeint main(){ int n,i; อันที่จริง rem; printf("\nป้อนตัวเลข :"); scanf("%d",&n); printf("\n"); int sum =0; อุณหภูมิภายใน =n; ในขณะที่ (n){ i =1,fact =1; rem =n % 10; ในขณะที่ (i <=rem) { ข้อเท็จจริง =ข้อเท็จจริง * ผม; ผม++; } sum =ผลรวม + ข้อเท็จจริง; n =n / 10; } if(sum ==temp) printf("%d is a strong number\n",temp); อื่น printf("%d ไม่ใช่ตัวเลขที่แข็งแกร่ง\n",temp); คืนค่า 0;} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
รอบที่ 1:ใส่ตัวเลข :145145 เป็นตัวเลขที่รัดกุม เรียกใช้ 2:ใส่ตัวเลข :2525 ไม่ใช่ตัวเลขที่รัดกุม