一直没想到怎么去重 看了眼别人的代码...so easy啊
同余啊 唉..脑子被僵尸吃掉了
难得1000出个简单的
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<cmath> 7 #include<vector> 8 using namespace std; 9 #define LL long long 10 int vis[1010]; 11 class SparseFactorialDiv2 12 { 13 public: 14 long long getCount(long long lo, long long hi, long long divisor) 15 { 16 LL i,ans1=0,ans2=0,k = divisor; 17 for(i = 0 ;i*i <hi ; i++) 18 { 19 if(!vis[(i*i)%k]) 20 { 21 vis[(i*i)%k] = 1; 22 ans1+=(hi-i*i)/k; 23 if(lo>i*i) 24 ans2+=(lo-i*i-1)/k; 25 } 26 } 27 return ans1-ans2; 28 } 29 };