일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 수학탐구
- 블록코딩
- algeomath
- counting sunday
- 프로젝트 오일러
- 이항분포
- 제곱근의뜻
- 지오지브라
- 확률실험
- 하합
- project euler
- Geogebra
- 리만합
- 알지오매스
- 작도
- 파이썬
- 큰수의법칙
- 피타고라스 정리
- 몬테카를로
- python
- java
- 정오각형
- 시뮬레이션
- 재귀함수
- 삼각함수의그래프
- 상합
- 오일러
- 큰 수의 법칙
- 프랙탈
- 구분구적법
- Today
- Total
이경수 선생님의 수학실험실
Problem 10(Summation of primes) 본문
Problem 10(Summation of primes)
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
In Python:
import time
startTime = time.time()
primes = []
signPrimes = []
for i in range(1, 2 * pow(10, 6) + 2):
signPrimes.append(1)
signPrimes[0] = 0
signPrimes[1] = 0
signPrimes[2] = 1
for i in range(2, 2 * pow(10, 6) + 1):
if signPrimes[i] == 0:
pass
else:
primes.append(i)
for j in range(1, int(2 * pow(10, 6) / primes[-1])):
signPrimes[(j + 1) * primes[-1]] = 0
print(sum(primes))
print(time.time() - startTime, "seconds")
Run time: 8.704661130905151 seconds
In Java:
//Euler10 Summation of primes
package project_euler;
import java.util.ArrayList;
public class Euler10 {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
long sum = 0;
ArrayList<Integer> primes = new ArrayList<Integer>();
ArrayList<Integer> signPrimes = new ArrayList<Integer>();
for (int i = 0; i < 2 * Math.pow(10, 6) + 1; i++) {
signPrimes.add(1);
}
signPrimes.set(0, 0);
signPrimes.set(1, 0);
signPrimes.set(2, 1);
for (int i = 2; i < 2 * Math.pow(10, 6) + 1; i++) {
if (signPrimes.get(i) == 1) {
primes.add(i);
for (int j = 2; j < Math.floor(2 * Math.pow(10, 6) / i) + 1; j++) {
signPrimes.set(j * i, 0);
}
}
}
for (int i = 0; i < primes.size(); i++) {
sum += primes.get(i);
}
System.out.println(sum);
long endTime = System.currentTimeMillis();
System.out.println((double)(endTime - startTime) / (double) 1000 + "seconds");
}
}
Run time: 4.577seconds
solution: 142913828922
[from Project Euler: https://projecteuler.net/problem=10]
'Project Euler' 카테고리의 다른 글
Problem 12(Highly divisible triangular number) (0) | 2019.02.10 |
---|---|
Problem 11(Largest product in a grid) (0) | 2019.02.10 |
Problem 9(Special Pythagorean triplet) (0) | 2019.02.09 |
Problem 8(Largest product in a series) (0) | 2019.02.09 |
Problem 7(10001st prime) (0) | 2019.02.08 |