จำนวนที่รัดกุมคือตัวเลขที่ผลรวมของแฟคทอเรียลของตัวเลขทั้งหมดเท่ากับตัวเลข 'n' แฟกทอเรียลบอกเป็นนัยเมื่อเราพบผลคูณของตัวเลขทั้งหมดด้านล่างตัวเลขนั้นรวมถึงตัวเลขนั้นด้วย และแสดงด้วย ! (เครื่องหมายอัศเจรีย์) เช่น 5! =5x4x3x2x1 =120 เมื่อจำเป็นต้องตรวจสอบว่าตัวเลขเป็นตัวเลขที่คาดเดายากหรือไม่ สามารถใช้ตัวดำเนินการเศษ/โมดูลัสและลูป "ในขณะที่" ได้
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
my_sum=0 my_num = 296 print("The number is") print(my_num) temp = my_num while(my_num): i=1 fact=1 remainder = my_num%10 while(i<=remainder): fact=fact*i i=i+1 my_sum = my_sum+fact my_num=my_num//10 if(my_sum == temp): print("The number is a strong number") else: print("The number is not a strong number")
ผลลัพธ์
The number is 296 The number is not a strong number
คำอธิบาย
-
ผลรวมเริ่มต้นเป็น 0
-
หมายเลขถูกกำหนดและแสดงบนคอนโซล
-
ตัวเลขถูกกำหนดให้เป็นตัวแปรชั่วคราว
-
วง while ถูกใช้เพื่อกำหนดส่วนที่เหลือ
-
ในขณะที่ลูปถูกใช้อีกครั้งเพื่อดูว่าตัววนซ้ำน้อยกว่าหรือเท่ากับส่วนที่เหลือหรือไม่
-
หากน้อยกว่านี้ ตัวแปร 'fact' จะถูกคูณด้วยตัววนซ้ำ
-
จากนั้นจะเพิ่มขึ้นทีละ 1
-
ค่าผลรวมจะถูกเพิ่มเข้าไปในตัวแปร 'ข้อเท็จจริง'
-
หากตัวแปร 'temp' และผลรวมเท่ากัน จะถือเป็นตัวเลขสตริง