ตัวเลขทางคณิตศาสตร์ที่กำหนดในทฤษฎีจำนวนใน ฐานจำนวนที่กำหนดเป็นจำนวนธรรมชาติที่เท่ากับลูกบาศก์สมบูรณ์ของจำนวนธรรมชาติอื่น โดยที่ผลรวมหลักของจำนวนธรรมชาติตัวแรกจะเท่ากับผลรวมหลักของตัวเลขที่สอง (วิกิพีเดีย)
ตัวเลขนี้ถูกพบโดย Henry Dudeney . สูตรทางคณิตศาสตร์ คือ −
ในที่นี้เราได้รับจำนวนเต็ม n งานของเราคือ ตรวจสอบว่าหมายเลขที่กำหนด n เป็นหมายเลขของเพื่อนหรือไม่
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล: ไม่มี =17592
ผลลัพธ์: ไม่
คำอธิบาย:
เบอร์ที่ให้มาไม่ใช่เบอร์สำรอง
แนวทางการแก้ปัญหา -
วิธีแก้ปัญหาอยู่ในคำจำกัดความพื้นฐานของ dudeney number ตัวเลขคือ หมายเลขดูนี่ย์โดยพิจารณาจากข้อเท็จจริงที่ว่ารากที่สามของตัวเลขนั้นเท่ากับผลรวมของหลักนั้น .
อัลกอริทึม −
ขั้นตอนที่ 1: ตรวจสอบว่า n เป็นลูกบาศก์ที่สมบูรณ์แบบหรือไม่
ขั้นตอนที่ 2.1: ถ้าใช่ ให้ตรวจสอบว่ารากที่สามของ n =ผลรวมของตัวเลขของ n หรือไม่
ขั้นตอนที่ 2.2.1: ถ้าใช่ ตัวเลขก็คือ หมายเลขดูนี่ย์
ขั้นตอนที่ 2.2.2: หากไม่ แสดงว่าหมายเลขนั้นไม่ใช่หมายเลข Dudeney
ขั้นตอนที่ 2.2: หากไม่ แสดงว่าไม่ใช่หมายเลข Dudeney
โปรแกรม C++ เพื่อแสดงการทำงานของอัลกอริทึมของเรา -
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int calcDigitSum(int n){ int digitSum = 0; int digitVal; while (n > 0) { digitVal = n % 10; digitSum += digitVal; n /= 10; } return digitSum; } int checkDudeney(int N) { int cubeRoot = int( round( cbrt(N) ) ); if(pow(cubeRoot, 3.0) != N){ return 0; } int sumOfDigit = calcDigitSum(N); if (cubeRoot != sumOfDigit) return 0; return 1; } int main() { int N = 104323; cout<<"The number "<<N; if (checkDudeney(N)) cout<<" is a dudeney number."; else cout<<" is not a dudeney number."; return 0; }
ผลลัพธ์ -
The number 104323 is not a dudeney number.