← Home
package main

import (
	"fmt"
)

func main() {
	var l, r int
	if _, err := fmt.Scan(&l, &r); err != nil {
		return
	}
	if l > r {
		l, r = r, l
	}

	if r < 2 {
		fmt.Println(0)
		return
	}

	size := (r + 1) / 2
	sieve := make([]uint64, (size/64)+1)

	sieve[0] |= 1

	for i := 1; 2*i*i+2*i < size; i++ {
		if (sieve[i/64] & (1 << (i % 64))) == 0 {
			p := 2*i + 1
			for j := 2*i*(i+1); j < size; j += p {
				sieve[j/64] |= (1 << (j % 64))
			}
		}
	}

	count := 0
	if l <= 2 && 2 <= r {
		count++
	}

	start := l
	if start%4 != 1 {
		start += (5 - start%4) % 4
	}
	for i := start; i <= r; i += 4 {
		idx := i / 2
		if (sieve[idx/64] & (1 << (idx % 64))) == 0 {
			count++
		}
	}

	fmt.Println(count)
}