#include #include using namespace std; mapM; int N; int gcd(int a,int b){return b?gcd(b,a%b):a;} main() { cin>>N; M[0]=1; for(int i=0;i>A; mapU; for(map::iterator it=M.begin();it!=M.end();it++) { U[it->first]+=it->second; U[gcd(it->first,A)]+=it->second; } M=U; } cout<