/* [NWERC'06] PRIME PATH by: Jan Kuipers */ using namespace std; #include #include #include int main () { vector p; for (int i=1000; i<10000; i++) { int ok=1; for (int d=2; ok && d*d<=i; d++) if (i%d==0) ok=0; if (ok) p.push_back(i); } int N = p.size(); vector > next(N); vector > dist(N); for (int i=0; i>runs; while (runs--) { int fr,to; cin>>fr>>to; for (int i=0; i > pq; pq.push(make_pair(0,fr)); vector best(N,-1); while (!pq.empty()) { int d = -pq.top().first; int i = pq.top().second; pq.pop(); if (best[i]!=-1) continue; best[i]=d; for (int j=0; j