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

| math
| for std::vector

## Functions

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

## 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

{
tests(); // execute the tests
return 0;
}
tests
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

{
std::cout << "Test 1:\t n=60\n";
assert(math::magic_number(60) == false);
std::cout << "passed\n";
std::cout << "Test 2:\t n=730\n";
assert(math::magic_number(730) == true);
std::cout << "passed\n";
std::cout << "Test 3:\t n=0\n";
assert(math::magic_number(0) == false);
std::cout << "passed\n";
std::cout << "Test 4:\t n=479001600\n";
assert(math::magic_number(479001600) == false);
std::cout << "passed\n";
std::cout << "Test 5:\t n=-35\n";
assert(math::magic_number(-35) == false);
std::cout << "passed\n";
}
std::cout
math::magic_number
bool magic_number(const uint64_t &n)
Definition: magic_number.cpp:32
Here is the call graph for this function: