#define _GLIBCXX_DEBUG #include using namespace std; typedef long long ll; #define rep(i,a,b) for(int i=a;i; // intの1次元の型に vi という別名をつける using vvi = vector; // intの2次元の型に vvi という別名をつける using si =vector; using ssi =vector; //using mint = modint998244353; const long long INF = 1e18; //bit全探索 rep(i,0,1<<(n-1)){rep(j,0,n-1)if(I&(1<>n>>p; vvi vec(n+1); rep(i,2,n+1){ for(int j=2;j*j<=i;j++){ if(j*j==i){vec[i].push_back(j);vec[j].push_back(i);} else if(i/j==0){vec[i].push_back(j);vec[i].push_back(i/j);vec[j].push_back(i);vec[i/j].push_back(i);} } } int cnt=1; vectorseen(n+1); queueque; que.push(p); while(!que.empty()){ int a=que.front(); seen[a]=true; que.pop(); for(auto m:vec[a]){ if(seen[m])continue; else cnt++; que.push(m); } } cout<