import java.util.Scanner; public class Main { public static final int MAX=1000000; public static boolean[] isprime=new boolean[MAX]; public static void sieve() { for(int i=2; i=1; i--) if(n/i>sq) divs[m++]=n/i; int k=0; isq=-1; for(int i=2; isq && isq==-1) isq=k; k++; } } } public static int idx(long x) { if(x<=sq) return (int)(x-1); else return m-(int)(n/x); } public static void primecount(){ long[] dp=new long[m]; for(int i=0; i=l; j--) { long a=dp[j]; if(divs[j]=0; i--) { while(l>=0 && divs[l]>=p[i]*(p[i]-1)) l--; for(int j=m-1; j>=l+1; j--) { long a=dp[j]; if(divs[j]