一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方
#include<stdio.h>
#include<math.h>
#pragma warning(disable:4996)//因我的环境是vs2019,加上这个才不会在很多地方报错
//找出10000以内的数字,此数字加100,可以开平方,加286也可以开平方的整数。
int main()
{
long int x, y,i;
for (i = 1; i < 100000; i++)
{
x = sqrt(i + 100);
y = sqrt(i + 268);
if (x * x == (i + 100) && y * y == (i + 268))
{
printf("%ld\n", i);
}
}
}
本帖最后由 jackz007 于 2021-10-29 13:26 编辑
#include <stdio.h>
/* 一个数加 100 是完全平方数,加 268 也是完全平方数,在 10000 以内求取这个数 */
int main(void)
{
int a , b, c , x ;
for(x = 2 ; x < 10000 ; x ++) {
for(c = 0 , a = 11 ;a * a < x + 100 ; a ++) ;
if(a * a == x + 100) {
for(b = a ; b * b < x + 268 ; b ++);
if(b * b == x + 268) {
printf("%d\n" , x) ;
c ++ ;
}
}
}
if(! c) printf("无解!\n") ;
}
编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
21
261
1581
D:\0002.Exercise\C> #include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool num(int x){ return pow((int)(sqrt(x+100)), 2) == x+100 && pow((int)(sqrt(x+168)), 2) == x+168; }
int main(){
for(int n = 1; n < 10000; n++) if(num(n)) printf("%d\n", n);
return 0;
}156
页:
[1]