#include #include using namespace std; #define MAX (10000+1) int tab[MAX]; // sieve for prime numbers and exploration marks int pi [MAX]; int v = 0; void explore(int n, int k) { if (tab[k]!=n) { tab[k] = n; v++; explore(n, pi[k]); explore(n, k-pi[k]); } } int main() { memset(tab, 0, sizeof(tab)); memset(pi, 0, sizeof(pi)); tab[1] = -1; int pc = 0; for (int n=1; n