#include #include int S(int x, int yin); int upi(int xin, int yin) { return (xin-S(xin,yin)-1); } int min(int x, int y) { return x>y?y:x; } int S(int x, int yin) { int sum=0, i, sum1, sum2, dx=1; for(int i=2; i<=yin; i++) { sum2 = ( upi(i,(int)sqrt(i)) - upi(i-dx,(int)sqrt(i-dx))); if (sum2!=0) { sum1 = ( upi(x/i,min(i-dx,(int)sqrt(x/i))) - upi(i-dx,(int)sqrt(i-dx))) ; sum+=(sum1 * sum2); } } return sum; } unsigned long long pi(unsigned long long x) { return upi((int) x, (int) sqrt(x)); }