n=gets.not_nil!.to_i t=[true]*(3*n+1) t[0]=t[1]=false (2...t.size).each{|i| if t[i] (i*2).step(to: t.size-1,by: i){|j|t[j]=false} end } q=(2...t.size).select{|i|t[i]} o=q.dup r=0 a=[0]*t.size q.each{|c| break if c>n o.each{|s|r+=a[s-c]} o.shift q.each{|x|break if x>=c;a[x+c]+=1} } p r