Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
|
|
@ -0,0 +1,27 @@
|
|||
import Stream._
|
||||
|
||||
object MDR extends App {
|
||||
|
||||
def mdr(x: BigInt, base: Int = 10): (BigInt, Long) = {
|
||||
def multiplyDigits(x: BigInt): BigInt = ((x.toString(base) map (_.asDigit)) :\ BigInt(1))(_*_)
|
||||
def loop(p: BigInt, c: Long): (BigInt, Long) = if (p < base) (p, c) else loop(multiplyDigits(p), c+1)
|
||||
loop(multiplyDigits(x), 1)
|
||||
}
|
||||
|
||||
printf("%15s\t%10s\t%s\n","Number","MDR","MP")
|
||||
printf("%15s\t%10s\t%s\n","======","===","==")
|
||||
Seq[BigInt](123321, 7739, 893, 899998, BigInt("393900588225"), BigInt("999999999999")) foreach {x =>
|
||||
val (s, c) = mdr(x)
|
||||
printf("%15s\t%10s\t%2s\n",x,s,c)
|
||||
}
|
||||
println
|
||||
|
||||
val mdrs: Stream[Int] => Stream[(Int, BigInt)] = i => i map (x => (x, mdr(x)._1))
|
||||
|
||||
println("MDR: [n0..n4]")
|
||||
println("==== ========")
|
||||
((for {i <- 0 to 9} yield (mdrs(from(0)) take 11112 toList) filter {_._2 == i})
|
||||
.map {_ take 5} map {xs => xs map {_._1}}).zipWithIndex
|
||||
.foreach{p => printf("%3s: [%s]\n",p._2,p._1.mkString(", "))}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue