#include<cstdio>
#include<cmath>
using namespace std;
long long H(int n){
long long ans = 0;
int m = (int)sqrt(0.0+n);
for (int i = 1; i<= m; ++ i)
ans += i*(n/i - n/(i+1));
for (int i = n/(m+1); i >= 1; -- i)
ans += n/i;
return ans;
}
long long int Input() {
char cha;
long long int x = 0;
while(cha = getchar()) {
if(cha==' '||cha == '\n') break;
x=(x<<3)+(x<<1)+cha-48;
}
return x;
}
inline void write(int x){
if(x>9)write(x/10);
putchar(x%10+'0');
}
int main(){
int n,m=0;
n=Input();
while(n--){
m++;
int c;
c=Input();
write(H(c));
putchar('\n');
}
}
這是我的程式碼
猜一猜我錯哪裡?
我WA:1001
請問一下 T ( T <= 1000 )
這句話寫假的嗎?