1. 程式人生 > >演算法提高 ADV-184 素數求和

演算法提高 ADV-184 素數求和

問題描述   輸入一個自然數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);
	}
}