1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. #!/bin/env ruby
  11. require 'benchmark'
  12.  
  13. def phantom_five
  14. numPrimes = 0;
  15. currentTest = 2;
  16. isPrime = 1;
  17. while numPrimes<10000
  18. for test in 2...(currentTest-1)
  19. if (currentTest%test) == 0
  20. isPrime = 0;
  21. break;
  22. end
  23. end
  24. if isPrime == 1
  25. numPrimes = numPrimes + 1;
  26. # puts "PF: found prime " + numPrimes.to_s + ": " + currentTest.to_s;
  27. end
  28. isPrime = 1;
  29. currentTest = currentTest + 1;
  30. end
  31. puts "%d primes found" % [numPrimes]
  32. end
  33.  
  34. def check_prime n
  35. i = 2
  36. while i < (n -1)
  37. if n % i == 0
  38. return false
  39. end
  40. i += 1
  41. end
  42. true
  43. end
  44.  
  45. def aighy
  46. number_of_primes = 0
  47. n = 2
  48. while number_of_primes < 10000
  49. number_of_primes += 1 if check_prime(n)
  50. n += 1
  51. end
  52. puts "%d primes found" % [ number_of_primes ]
  53. end
  54.  
  55. Benchmark::bm(1) do |test|
  56. # test.report("phantom_five") do
  57. # phantom_five
  58. # end
  59. test.report("aighy") do
  60. aighy
  61. end
  62. end
  63.