turtle5204

Primefinder

Nov 13th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. function isPrime(n)
  2. local n = tonumber(n)
  3. --catch nil, 0, 1, negative and non int numbers
  4. if not n or n<2 or (n % 1 ~=0) then
  5. return false
  6. --catch even number above 2
  7. elseif n>2 and (n % 2 == 0) then
  8. return false
  9. --primes over 5 end in 1,3,7 or 9
  10. --catch numbers that end in 5 or 0 (multiples of 5)
  11. elseif n>5 and (n % 5 ==0) then
  12. return false
  13. --now check for prime
  14. else
  15. --only do the odds
  16. for i = 3, math.sqrt(n), 2 do
  17. --did it divide evenly
  18. if (n % i == 0) then
  19. return false
  20. end
  21. end
  22. --can defeat optimus
  23. return true
  24. end
  25. end
  26.  
  27. local number = 0
  28. if fs.exists("/cpr") then
  29. local file = fs.open("/cpr", "r")
  30. number = tonumber(file.readAll())
  31. file.close()
  32. end
  33.  
  34. while true do
  35. number = number+1
  36.  
  37. if isPrime(number) then
  38. local file = fs.open("/cpr", "w")
  39. file.write(tostring(number))
  40. file.close()
  41. end
  42. os.queueEvent("")
  43. coroutine.yield()
  44. end
Advertisement
Add Comment
Please, Sign In to add comment