#include #define ll long long #define ull unsigned long long using namespace std; /*2進数配列+1*/ vector twoadd(vector v, int N){ v[N-1]+=1; int ind = N-1; int j=N-1; for(j=N-1;j>=1;j--){ if(v[j]>1){ v[j-1]+=1; v[j]=0; } } return v; } /*フィボナッチ*/ long long fibonatti(long long d){ long long count = 0; long long f1 = 1; long long f2 = 1;/*ここを変える*/ long long temp; if(d == 1){ count = f1; }else if(d == 2){ count = f2; }else if(d==0){ count = 1; }else{ for(int i=0;iR){ long long temp=R; R = L; L = temp; } unsigned long long pp=0,ppt=0; unsigned long long ans=0; if(R%L==0){ ans = L; }else{ while(true){ ppt = pp; pp=R%L; if(pp == 0){ ans = ppt; break; } R = L; L = pp; } } return ans; } /*最小公倍数*/ unsigned long long LCM(long long L,long long R){ unsigned long long ans; unsigned long long gcd = GCD(L,R); ans = (L/gcd)*R; return ans; } /*Combination set*/ #define mod 1000000007 #define maxcomb 3000/*大きいものを求めるときはここを変える*/ vector fc(maxcomb+1); vector ifc(maxcomb+1); long long modpow(long long x,long long n){ long long ans = 1; while(n > 0){ if(n & 1) { ans = ans*x%mod; } x = x*x%mod; n >>= 1; } return ans; } void Conb(){ fc[0]= 1; ifc[0]=1; for(long long i=0;i 0) { res += n%10; n /= 10; } return res; } /*約数の数*/ long long countdivisor(long long K){ long long N = sqrt(K); bool b = false; if(sqrt(K)-N==0){ b= true; } long long count =0; for(int i=0;i Alldivisor(long long n){ vector ret; for(int i=1;i*i<=n;i++){ if(n%i == 0){ ret.push_back(i); if(i != 1 && i*i != n){ ret.push_back(n/i); } } } return ret; } /**/ template vector> prime_factor(T n) { vector> ret; for (T i = 2; i * i <= n; i++) { T tmp = 0; while (n % i == 0) { tmp++; n /= i; } if(tmp!=0) ret.push_back(make_pair(i, tmp)); } if (n != 1) ret.push_back(make_pair(n, 1)); return ret; } /*特定の文字カウント*/ int stringcount(string s,char c){ return count(s.cbegin(),s.cend(),c); } /*Graph*/ using Graph = vector>; //グラフ型 struct Edge{ int to; //辺の行き先 int weight; //辺の重み Edge(int t,int w):to(t),weight(w){} }; using WGraph = vector>; /*vector first_order; //行きがけ順 vector last_order; //帰りがけ順 */ /*重みなし有向*/ Graph WeightlessGraph(int N,int M){ Graph G(N); vector m(N,false); for(int i=0;i> a >> b; G[a-1].push_back(b-1); } return G; } /*重みなし無向*/ Graph WeightlessNoDirectionGraph(int N,int M){ Graph G(N); for(int i=0;i> a >> b; G[a-1].push_back(b-1); G[b-1].push_back(a-1); } return G; } /*重みつき*/ WGraph WeightGraph(int N,int M){ WGraph G(N); for(int i=0;i> from >> to >> weight; G[from].push_back(Edge(to,weight)); } return G; } /*深さ優先探索*/ vector seen; //vector ans; void dfs(const Graph &G, int s,int p){ seen[s]=true; /*if(p!=-1){ ans[s]+=ans[p]; }*/ for(auto next_v:G[s]){ if(seen[next_v]){ continue; } dfs(G,next_v,s); } } /*1以外の素因数の個数*/ long long prime_counter(long n) { long long count=0; bool ch = false; for (long i = 2; i * i <= n; i++) { long long tmp = 0; while (n % i == 0) { tmp++; n /= i; ch = true; } if(ch == true) count++; ch = false; } if (n != 1) count++; return count; } long long divisor(long long n){ int i=sqrt(n); while(true){ if(n%i == 0){ return i; } i--; } } /*ここから*/ int main() { int K; cin >> K; vector p(6),n(6); p = {2,3,5,7,11,13}; n = {4,6,8,9,10,12}; vector t(36); int count = 0; for(int i=0;i<6;i++){ for(int j=0;j<6;j++){ if(p[i]*n[j]==K){ count++; } } } double ans = 0; for(int i=0;i