演算法提高 ADV-184 素數求和
阿新 • • 發佈:2019-01-09
問題描述
輸入一個自然數n,求小於等於n的素數之和
樣例輸入
2
樣例輸出
2
資料規模和約定
測試樣例保證 2 <= n <= 2,000,000
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean [] primes = new boolean[n+1]; primes[0] = true; primes[1] = true; for (int i = 2; i < primes.length; i++) { if(!primes[i]){ for (int j = i*2; j < primes.length; j=j+i) { primes[j] = true; } } } long sum = 0; for (int i = 0; i < primes.length; i++) { if(!primes[i]){ sum += i; } } System.out.println(sum); } }