Last active
September 28, 2024 17:33
-
-
Save menjaraz/a7a458abfdba36277f091225cd9a579f to your computer and use it in GitHub Desktop.
Project Euler Problem 10 - Summation of Primes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Summation of Primes | |
// https://projecteuler.net/problem=10 | |
void main() { | |
final timer = Stopwatch()..start(); | |
final answer = summationOfPrimesBelow(2000000); | |
timer.stop(); | |
print('\nProject Euler #10\nAnswer: $answer'); | |
print('Elapsed time: ${timer.elapsedMilliseconds} milliseconds.\n'); | |
} | |
int summationOfPrimesBelow(int limit) { | |
int sum = 0; | |
for (int prime in primeGenerator().takeWhile((prime) => prime < 2000000)) { | |
sum += prime; | |
} | |
return sum; | |
} | |
Iterable<int> primeGenerator() sync* { | |
yield 2; | |
yield 3; | |
var number = 3; | |
while (true) { | |
number += 2; | |
var isPrime = true; | |
for (var i = 2; i * i <= number; i++) { | |
if (number % i == 0) { | |
isPrime = false; | |
break; | |
} | |
} | |
if (isPrime) { | |
yield number; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment