ตัวเลขทางคณิตศาสตร์ที่กำหนดในทฤษฎีจำนวนใน ฐานจำนวนที่กำหนดเป็นจำนวนธรรมชาติที่เท่ากับลูกบาศก์สมบูรณ์ของจำนวนธรรมชาติอื่น โดยที่ผลรวมหลักของจำนวนธรรมชาติตัวแรกจะเท่ากับผลรวมหลักของตัวเลขที่สอง (วิกิพีเดีย)
ตัวเลขนี้ถูกพบโดย 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.