From 7f11d20c0427afed2b821a6bb4e00920d899f63f Mon Sep 17 00:00:00 2001 From: Abhi Date: Sat, 18 Oct 2025 19:13:03 +0530 Subject: [PATCH 1/2] dissarium number --- math/dissarium_number.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 math/dissarium_number.cpp diff --git a/math/dissarium_number.cpp b/math/dissarium_number.cpp new file mode 100644 index 00000000000..e69de29bb2d From 4013b0a0bd9ac1c51a70818459954a51aeaeadd7 Mon Sep 17 00:00:00 2001 From: Abhi Date: Sat, 18 Oct 2025 19:25:12 +0530 Subject: [PATCH 2/2] final commit --- math/dissarium_number.cpp | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/math/dissarium_number.cpp b/math/dissarium_number.cpp index e69de29bb2d..68eea6a050c 100644 --- a/math/dissarium_number.cpp +++ b/math/dissarium_number.cpp @@ -0,0 +1,48 @@ +#include +#include +#include + +/* +Check if a number is a Disarium number. + +A Disarium number is a number in which the sum of its digits +powered with their respective positions is equal to the number itself. + +Args: + num (int): The number to check. + +Returns: + bool: true if num is a Disarium number, false otherwise. + +Examples: + is_disarium(135) -> true + is_disarium(89) -> true + is_disarium(75) -> false + is_disarium(9) -> true +*/ +bool is_disarium(int num) { + std::string digits = std::to_string(num); + int total = 0; + int position = 1; + + for (char c : digits) { + int digit = c - '0'; // convert char to int + total += std::pow(digit, position); + position++; + } + + return total == num; +} + +int main() { + // Test examples + int test_numbers[] = {135, 89, 75, 9}; + for (int n : test_numbers) { + std::cout << n << " is " + << (is_disarium(n) ? "a Disarium number" + : "not a Disarium number") + << std::endl; + } + + return 0; +}