64,654
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <math.h>
int main()
{
for (int n = 0, q = 1; n < 10; q++)
if ((long long)sqrt(8.0 * q * q + 1) == sqrt(8.0 * q * q + 1))
printf("%lld %d\n", (long long)sqrt(8.0 * q * q + 1), q), n++;
return 0;
}
// 输出
3 1
17 6
99 35
577 204
3363 1189
19601 6930
114243 40391
665857 235416
3880899 1372105
22619537 7997214
#include <stdio.h>
#define MAX ~0U
int main(void)
{
unsigned int p, q;
int result;
int count = 0;
printf("MAX=%u\n", MAX);
for (q = 1; q < MAX; ++q) {
for (p = 2 * q + 1; p < MAX; ++p) {
result = p * p - 8 * q * q -1;
if (result == 0) {
++count;
printf("[%.2d]q=%-10u p=%-10u\n", count, q, p);
if (count == 10) {
return 0;
}
break;
}
else if (result > 0) {
break;
}
}
}
return 0;
}
#include <stdio.h>
#define MAX ~0UL
int main(void)
{
unsigned long p, q;
long result;
int count = 0;
printf("MAX=%lu\n", MAX);
for (q = 1; q < MAX; ++q) {
for (p = 2 * q + 1; p < MAX; ++p) {
result = p * p - 8 * q * q -1;
if (result == 0) {
++count;
printf("[%.2d]q=%-10lu p=%-10lu\n", count, q, p);
if (count == 10) {
return 0;
}
break;
}
else if (result > 0) {
break;
}
}
}
return 0;
}
int main()
{
int p, q;
int n = 0;
for ( p = 1; n<10; p++)
{
for ( q = 1; q < p && n<10; q++)
{
if (p*p - 8 * q*q == 1)
{
printf("(%d,%d)\n", p, q);
n++;
}
}
}
}