0
Lucas-Lehmer 소수 테스트로 메르 센 소수를 찾는 스칼라에 Stream
을 구현하고 싶습니다. 나는 이미 : 지금해야 할 일은Lucas-Lehmer 소수 테스트로 메르 센 소수를 찾는 것
object Main {
//Mersenne Numbers:
def msrn():Stream[BigInt] = 7#::msrn.map(_*2+1)
def s():Stream[BigInt] = 14 #:: s.map(n => n*n-2)
lazy val zips = s.zip(msrn)
def main(args: Array[String]) {
zips take 7 foreach println
}
}
는 s
의 요소를 분할하는 모든 메르 센 번호 (msrn
의 요소)를 찾아서는 Stream
에 쓰기입니다.
편집 : 그것을 해결 :
object Main {
def msrn():Stream[BigInt] = 7#::msrn.map(_*2+1)
def s():Stream[BigInt] = 14 #:: s.map(n => n*n-2)
lazy val zips = s.zip(msrn).filter(x=>x._1%x._2==0)
def mersennePrimeStream():Stream[BigInt] = zips.map(x => x._2)
def main(args: Array[String]) {
mersennePrimeStream take 4 foreach println
}
}
비록 짧게 만들 수있는 방법이 있나요? 당신이의 시퀀스를 계산하는 경우가 훨씬 빠릅니다
감사합니다 많이! 놀라운 대답. – nlsmrg