ที่นี่เราจะเห็นหมายเลขโอซิริส เลขโอซิริสคือจำนวนที่เท่ากับผลรวมของการเรียงสับเปลี่ยนของตัวอย่างย่อยของตัวเลขของตัวเอง สมมติว่าตัวเลขคือ 132 จากนั้นหากเราคำนวณ {12 + 21 + 13 + 31 + 23 + 32} ก็จะเท่ากับ 132 เช่นกัน ดังนั้นตัวเลขดังกล่าวจึงเป็นเลขโอซิริส เราต้องเช็คว่าเบอร์ที่ให้มานั้นเป็นเบอร์โอซิริสหรือเปล่า
วิธีการเป็นเรื่องง่าย ถ้าเราวิเคราะห์ตัวเลข แต่ละหลักจะเกิดขึ้นสองครั้งเพื่อให้อยู่ในตำแหน่งเดียวและตำแหน่งหลักสิบ เราจึงตรวจได้โดยการคูณ 11 กับพวกมัน
อัลกอริทึม
isOsirisNumber(n) −
Begin a := last digit b := second digit c := first digit digit_sum := a + b + c if n = (22 * digit_sum), then return true end if return false End
ตัวอย่าง
#include using namespace std; bool isOsirisNumber(int n) { int a = n % 10; int b = (n / 10) % 10; int c = n / 100; int sum = a + b + c; if (n == (22 * sum)) { return true; } return false; } int main() { int n = 132; if (isOsirisNumber(n)) cout << "This is Osiris number"; else cout << "This is Not Osiris number"; }
ผลลัพธ์
This is Osiris number