Created
July 22, 2018 23:49
-
-
Save jbrains/dbadc637ea9e088d49220acce830a1be to your computer and use it in GitHub Desktop.
Find the number of factors of 5 in natural number n
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static int factorsOfFiveIn(int n) { | |
int factorsOfFive = 0; | |
while (n > 1) { | |
if (n % 5 == 0) factorsOfFive++; | |
n /= 5; | |
} | |
return factorsOfFive; | |
} |
Using Vavr's implementations: divide n by 5 as long as n is a multiple of 5, then count the number of times you successfully divided n by 5.
public static int factorsOfFiveIn(int n) {
return Stream.iterate(n, divideBy(5))
.map(isAMultipleOf(5))
.takeWhile(isTrue())
.length();
}
As a post script, I found an alternative implementation of the larger exercise, which makes factorsOfFiveIn()
obsolete. :) I'll publish the whole thing somewhere quite soon.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@jonsweimarck Thank you for this! I really like the version with the anonymous functions. I didn't know about
iterate()
, and Vavr's version also has it. This gives me a direction in which to refactor.