实测; 注释输出行600ms,不注释无论用哪种输出方式全部TLE(本地RE),单独输出却可以过????
#include<iostream>
using namespace std;
inline int cinn() {
register unsigned int x = 0;
register unsigned char y;
do y = getchar(); while (y < '0' || y>'9');
while (y <= '9' && y >= '0') {
x = x * 10 + y - '0';
y = getchar();
}return x;
}inline void coutt(register int x) {
register unsigned char z[100];
register unsigned int p = 1, q;
do {
q = x / 10;
z[100 - p] = x - 10 * q + '0';
x = q;
} while (x && ++p);
do
putchar(z[100 - p]);
while (--p);
return;
}signed main() {
std::ios::sync_with_stdio(0);
register int prime[5800000] = { 0 }, y = 0, p = -1, i = 1, j, q;
cin >> q >> q;
register bool x[100000000] = { 0 };
while (++i && i < 100000001) {
if (!x[i])
prime[++p] = i;
for (j = 0; j <= p && i * prime[j] < 100000001; j++) {
x[prime[j] * i] = 1;
if (i % prime[j] == 0) break;
}
}//for (i = 0; i < q; i++) coutt(prime[cinn() - 1]);
return 0;
}
请教大家这是因为什么原因?晚上弄好久了......