Advertisement
Guest User

Untitled

a guest
Oct 30th, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.07 KB | None | 0 0
  1. import scala.math._
  2.  
  3. object Main extends App {
  4.     var limit = 1500000;
  5.     var sqrtLimit = sqrt(limit.toDouble).toInt
  6.  
  7.     var isPrime = new Array[Boolean](1500001)
  8.     isPrime(2) = true
  9.     isPrime(3) = true
  10.  
  11.     var n = 0
  12.  
  13.     var x2 = 0
  14.     var y2 = 0
  15.  
  16.     for (i <- 1 to sqrtLimit) {
  17.         x2 += 2 * i - 1
  18.         y2 = 0
  19.  
  20.         for (j <- 1 to sqrtLimit) {
  21.             y2 += 2 * j - 1
  22.  
  23.             n = 4 * x2 + y2
  24.             if ((n <= limit) && (n % 12 == 1 || n % 12 == 5)) {
  25.                 isPrime(n) = !isPrime(n)
  26.             }
  27.  
  28.             n -= x2
  29.             if ((n <= limit) && (n % 12 == 7)) {
  30.                 isPrime(n) = !isPrime(n)
  31.             }
  32.  
  33.             n -= 2 * y2
  34.             if ((i > j) && (n <= limit) && (n % 12 == 11)) {
  35.                 isPrime(n) = !isPrime(n)
  36.             }
  37.         }
  38.     }
  39.  
  40.     for (i <- 5 to sqrtLimit) {
  41.         if (isPrime(i)) {
  42.             n = i * i
  43.             for (j <- n to limit by n) {
  44.                 isPrime(j) = false
  45.             }
  46.         }
  47.     }
  48.  
  49.     println(show())
  50.  
  51.     def show(): Int = {
  52.         var current = 3
  53.         var prime = 5
  54.  
  55.         for (i <- 6 to limit) {
  56.             if (current == 10001) {
  57.                 return prime
  58.             }
  59.             if (isPrime(i) && i % 3 != 0 && i % 5 != 0) {
  60.                 current += 1
  61.                 prime = i
  62.             }
  63.         }
  64.  
  65.         return prime
  66.     }  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement