Crates.io | kaprekar |
lib.rs | kaprekar |
version | 0.1.5 |
source | src |
created_at | 2022-06-06 20:42:56.496075 |
updated_at | 2023-02-11 23:53:15.413769 |
description | Include a function to find number of iterations to reach Kaprekar's constant. |
homepage | https://github.com/DeeterCesler/kaprekar-crate |
repository | https://github.com/DeeterCesler/kaprekar-crate |
max_upload_size | |
id | 600997 |
size | 6,490 |
Kaprekar's constants (6174 & 495) is useless but fun mathemtatical phenomenon.
The function within the crate you want is kaprekar::calculate_four(XXXX)
which takes a four-digit number with different integers.
There is also a three-digit constant (495) which you can calculate by inputing a three-digit input with kaprekar::calculate_three(XXX)
.
E.g.
use kaprekar;
...
let answer = kaprekar::calculate_four(1234);
// answer == 3
...
Applying this process to 6174 will result in 6174.
This function accepts an input of a four-digit, non-repeating number and returns the number of iterations to reach 6174.
E.g. supplying 993 will go through the same process, except the converging number is 495.
If you submit an invalid integer (either repeating or greater than 4 digits for calculate_four
or greater than 3 digits for calculate_three
) it will return an error.
4123
-> ["4","3","2","1"]
and ["1","2","3","4"]
d. Convert both vectors into separate strings again
e. And convert strings back to into separate integers
f. Return the difference of the two integers
g. If the answer isn't 6174, increment the counter and run it all again from the top of step 3Some(positive_integer)
is the number of iterations the formula took.Some(0)
means the given input itself was 6174 or 495 (hence 0
manipulations needed).None
means the input was out of bounds or was all repeating digits