View Code of Problem 103

#include <stdio.h>
#include <math.h>
//1000001
//10001
int main() {
	int a, b;
	int c[1000001] = { 0 };
	int sum = 0;
	for (int i = 2;i < 1000001;i++) {
		if (c[i] == 0) {
			sum++;
			c[i] = sum;
			for (int j = i * 2;j < 1000001;j += i) {
				c[j] = -1;
			}
		}
		else {
			c[i] = sum;
		}
	}
	while (scanf("%d %d", &a, &b) != EOF) {
		if (c[a]>c[a-1]) {
			printf("%d\n", c[b] - c[a] + 1);
		}
		else {
			printf("%d\n", c[b] - c[a]);
		}
	}
}

Double click to view unformatted code.


Back to problem 103