#include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<string.h> #include <iostream> int main() { int i,j,a,b,x; for(i=1;i<168;i++){ if(168%i==0){ j=168/i; a=(i-j)/2; b=(i+j)/2; x=a*a-100; if(i>j&&x+268==b*b){ printf("%d\n",x); } } } return 0; }
/* 一个整数x,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? x+100=n*n;x+268=m*m; m*m-n*n=(m+n)(m-n)=168; 令i=m+n;j=m-n;则i*j=168; i、j均为偶数或均为奇数,则j>2,则i<168/2+1 */ #include<stdio.h> main() { int i,j,m,n,x; for(i=1;i<168/2+1;i++){ if(168%i==0){ j=168/i; if(i>j&&(i+j)%2==0&&(i-j)%2==0){ m=(i+j)/2; n=(i-j)/2; x=n*n-100; printf("%d + 100 = %d * %d\n",x,n,n); printf("%d + 268 = %d * %d\n",x,m,m); } } } }