ที่นี่เราจะเห็นหมายเลขโอซิริส เลขโอซิริสคือจำนวนที่เท่ากับผลรวมของการเรียงสับเปลี่ยนของตัวอย่างย่อยของตัวเลขของตัวเอง สมมติว่าตัวเลขคือ 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