Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.
Loading...
Searching...
No Matches
magic_number.cpp File Reference

A simple program to check if the given number is a magic number or not. A number is said to be a magic number, if the sum of its digits are calculated till a single digit recursively by adding the sum of the digits after every addition. If the single digit comes out to be 1,then the number is a magic number. More...

#include <cassert>
#include <iostream>
Include dependency graph for magic_number.cpp:

Namespaces

namespace  math
 for IO operations
 

Functions

bool math::magic_number (const uint64_t &n)
 
static void tests ()
 Test function.
 
int main ()
 Main function.
 

Detailed Description

A simple program to check if the given number is a magic number or not. A number is said to be a magic number, if the sum of its digits are calculated till a single digit recursively by adding the sum of the digits after every addition. If the single digit comes out to be 1,then the number is a magic number.

This is a shortcut method to verify Magic Number. On dividing the input by 9, if the remainder is 1 then the number is a magic number else not. The divisibility rule of 9 says that a number is divisible by 9 if the sum of its digits are also divisible by 9. Therefore, if a number is divisible by 9, then, recursively, all the digit sums are also divisible by 9. The final digit sum is always 9. An increase of 1 in the original number will increase the ultimate value by 1, making it 10 and the ultimate sum will be 1, thus verifying that it is a magic number.

Author
Neha Hasija

Function Documentation

◆ main()

int main ( void )

Main function.

Returns
0 on exit
77 {
78 tests(); // execute the tests
79 return 0;
80}
static void tests()
Test function.
Definition magic_number.cpp:51
Here is the call graph for this function:

◆ tests()

static void tests ( )
static

Test function.

Returns
void
51 {
52 std::cout << "Test 1:\t n=60\n";
53 assert(math::magic_number(60) == false);
54 std::cout << "passed\n";
55
56 std::cout << "Test 2:\t n=730\n";
57 assert(math::magic_number(730) == true);
58 std::cout << "passed\n";
59
60 std::cout << "Test 3:\t n=0\n";
61 assert(math::magic_number(0) == false);
62 std::cout << "passed\n";
63
64 std::cout << "Test 4:\t n=479001600\n";
65 assert(math::magic_number(479001600) == false);
66 std::cout << "passed\n";
67
68 std::cout << "Test 5:\t n=-35\n";
69 assert(math::magic_number(-35) == false);
70 std::cout << "passed\n";
71}
bool magic_number(const uint64_t &n)
Definition magic_number.cpp:32
Here is the call graph for this function: