View Code of Problem 27

#include <iostream>
#include <vector>
using namespace std;
#define maxn 65536
typedef long long ll;
bool isprime[maxn];
vector<ll> prime;

void init(){
	for(ll i=0;i<maxn;i++){
		isprime[i] = true;
	}
	isprime[0] = false;
	isprime[1] = false;
	for(ll i=2;i<maxn;i++){
		if(!isprime[i]) {
			continue;
		}
		prime.push_back(i);
		for(ll j=i*i;j<maxn;j=j+i){
			isprime[j] = false;
		}
	}
}
int main(){
	
	ll a,b;
	init();
	while(cin>>a>>b){
		if(a>b){
			swap(a,b);
		}
		ll sum=0;
		for(ll i=0;i<prime.size();i++){
			if(prime[i]>a&&prime[i]<b){
				sum += prime[i];
			}
		}
//		for(ll i=a+1;i<b;i++){
//			if(isprime[i]){
//				sum += i;
//			}
//		}
		cout<<sum<<endl;
	}
	
} 

Double click to view unformatted code.


Back to problem 27