@littlefool 发表于 2021-10-29 10:59:53

一个整数,它加上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 12:37:42

本帖最后由 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>

傻眼貓咪 发表于 2021-10-29 12:44:58

#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]
查看完整版本: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数