# Magic Number

I have to write progarm for following problem -
File contain numbers. Numbers can be of 20 digits. I want to write program so that it can print number - with following property

75 * 75 * 75 = 421875 (last two digits are 75)
501 * 501 * 501 = 125751501 (again last 3 difits are same as 501)

Following numbers are also have same property
49999999999999999999
1787109375
12890625
4218751
2890624
3751

``````Please help me to solve this problem. I am sure strig need to use for it as there is no datatype that store number for 20 digits and its cube.
``````
###### Who is Participating?

Commented:
Try out using the C++ big integer library available at http://mattmccutchen.net/bigint/

John Nash
0

Commented:
You can get more details on large number arithmetic from the http://en.wikipedia.org/wiki/Arbitrary_precision_arithmetic URL.
0

Commented:
The last three digits of n^3 only depend on the last three digits of n.

If n consists of a units, b tens, and c hundreds, then the last three digits of n^3 will be:

(a^3 + 3a^2*b*10 + 3a^2*c*100 + 2a*b^2*100) % 1000
0

Commented:
(So, for example, read the number into a char[], cast the last three digits to integers, perform the above check. If it equals the last three digits then it's a 'magic number', so put the char[])
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.