简单数论题,注意使用long long类型,最好直接打表,因为只要输出十行。
我的解题代码如下:
//#include <iostream>
#include <cstdio>
/*
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
#include <algorithm>
using namespace std;
*/
int main()
{
printf(
" 6 8\n"
" 35 49\n"
" 204 288\n"
" 1189 1681\n"
" 6930 9800\n"
" 40391 57121\n"
" 235416 332928\n"
" 1372105 1940449\n"
" 7997214 11309768\n"
" 46611179 65918161\n");
return 0;
}
/*
int main()
{
long long m=1,c=0;
double N;
while(c!=10)
{
m++;
N=(sqrt(1.0+8*m*m)-1)/2;
if(N==floor(N))
{
printf("%10d",m);
printf("%10.0lf\n",N);
c++;
}
}
return 0;
}
*/
被注释掉的恢复后是基本的AC代码,但打表可以节省1秒多的时间。