View Code of Problem 103

#include<stdio.h>
#define max 1000010
int a[max] = {};
int main() {
	int sum = 0;
	for (int i = 2; i < max; i++) {
		if (a[i] == 0) {
			sum++;
			a[i] = sum;
			for (int j = i * 2; j < max; j=j+i) {
				a[j] = -1;
			}
		}
		else 
			a[i] = sum;
	}
	int m, n;
	while (scanf("%d%d", &m, &n) != EOF) {
		if (a[m] > a[m - 1]) {
			printf("%d\n", a[n] - a[m]+1);
		}
		else {
			printf("%d\n", a[n] - a[m]);
		}
		
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 103