This file contains 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
### Keybase proof | |
I hereby claim: | |
* I am dclements on github. | |
* I am dclements (https://keybase.io/dclements) on keybase. | |
* I have a public key whose fingerprint is AFE0 C614 599C 5765 49A1 4A11 6C2D F140 11D0 D750 | |
To claim this, I am signing this object: |
This file contains 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
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> | |
<!-- | |
This configuration file was written by the eclipse-cs plugin configuration editor | |
--> | |
<module name="Checker"> | |
<property name="severity" value="warning"/> | |
<module name="TreeWalker"> |
This file contains 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
@tailrec | |
private def eulerTotient(f: List[Tuple2[LargeInt, Int]], retval: Rational): LargeInt = { | |
f match { | |
case Nil => retval.dividend | |
case ::(h, t) => | |
eulerTotient( | |
t, | |
retval * Rational(h._1 - LargeInt.One, h._1) | |
) |