Advertisement
Guest User

Untitled

a guest
Oct 17th, 2024
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. extends Node
  2.  
  3. const LIMIT: int = 25000
  4.  
  5. func _ready() -> void:
  6. var start_time: int = Time.get_ticks_msec()
  7. var prime_count: int = count_primes(LIMIT)
  8. var end_time: int = Time.get_ticks_msec()
  9. var duration: int = end_time - start_time
  10. prints("Number of primes found:", prime_count)
  11. prints("Time taken:", duration, "ms")
  12.  
  13. func count_primes(limit: int) -> int:
  14. if limit <= 2:
  15. return 0 if limit < 2 else 1
  16. var sieve: PackedByteArray = PackedByteArray()
  17. sieve.resize((limit + 1) >> 1)
  18. sieve.fill(1)
  19. var count: int = 1
  20. var num: int = 3
  21. var sqrt_limit: int = sqrt(limit) as int
  22.  
  23. while num <= sqrt_limit:
  24. if sieve[num >> 1] == 1:
  25. var multiple: int = num * num
  26. while multiple < limit:
  27. sieve[multiple >> 1] = 0
  28. multiple += num << 1
  29. count += 1
  30. num += 2
  31. while num < limit:
  32. count += sieve[num >> 1]
  33. num += 2
  34. return count
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement