#include using namespace std; vector primes; long path(long n){ long ret = 1; for (int i=0; i &a) { // Return the length of the longest possible sequence of moves. long ret = 0; for (vector::iterator it=a.begin(); it!=a.end(); ++it){ ret += path(*it); } return ret; } #define mm 1000001 int main() { int n; cin >> n; vector a(n); // sieve bool isNotPrime[mm] = {}; for (int c = 4; c> a[a_i]; } long result = longestSequence(a); cout << result << endl; return 0; }