- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 44743
- 在线时间
- 小时
|
发表于 2009-8-31 10:55:28
|
显示全部楼层
简单写了程序计算所有的解:
9,10,17,[a=1,b=8]
7,15,20,[a=1,b=6]
6,25,29,[a=1,b=5]
25,6,29,[a=1,b=24]
15,7,20,[a=1,b=14]
10,9,17,[a=1,b=9]
6,8,10,[a=2,b=4]
6,8,10,[a=2,b=4]
5,12,13,[a=2,b=3]
8,6,10,[a=2,b=6]
6,8,10,[a=2,b=4]
12,5,13,[a=2,b=10]
8,6,10,[a=2,b=6]
5,13,12,[a=3,b=2]
13,5,12,[a=3,b=10]
6,10,8,[a=4,b=2]
6,10,8,[a=4,b=2]
10,6,8,[a=4,b=6]
10,6,8,[a=4,b=6]
6,29,25,[a=5,b=1]
29,6,25,[a=5,b=24]
7,20,15,[a=6,b=1]
8,10,6,[a=6,b=2]
10,8,6,[a=6,b=4]
8,10,6,[a=6,b=2]
10,8,6,[a=6,b=4]
10,8,6,[a=6,b=4]
20,7,15,[a=6,b=14]
9,17,10,[a=8,b=1]
17,9,10,[a=8,b=9]
10,17,9,[a=9,b=1]
17,10,9,[a=9,b=8]
12,13,5,[a=10,b=2]
13,12,5,[a=10,b=3]
15,20,7,[a=14,b=1]
20,15,7,[a=14,b=6]-
- // et.cpp : Defines the entry point for the console application.
- //
-
- #include "stdafx.h"
- #include <math.h>
-
- void output(int a, int b)
- {
- int r=(a*a+4)*b;
- int r2=(b*b+4)*a;
- int d=abs(a*b-4);
- if(d==0){
- fprintf(stderr,"invalid solution %d,%d\n",a,b);
- return;
- }
- if(r%d!=0){
- fprintf(stderr,"invalid solution %d,%d\n",a,b);
- return;
- }
- int c1=r/d;
- int c2=r2/d;
- printf("%d,%d,%d,[a=%d,b=%d]\n",a+b,c1,c2,a,b);
- }
-
- void lookup(int a)
- {
- int u=a*a+4;
- int d,b;
- for(d=1;d<=u;d++){
- if(u%d==0){
- if((d+1)%a==0){
- b=(d+1)/a*4;
- output(a,b);
- }
- if((d+2)%a==0){
- b=(d+2)/a*2;
- output(a,b);
- }
- if((d+4)%a==0){
- b=(d+4)/a*1;
- output(a,b);
- }
- }
- }
- }
-
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a;
- for(a=1;a<=10;a++){
- lookup(a);
- }
- for(a=11;a<=76;a++){
- if(32%(a+2)==0||52%(a+3)==0||80%(a+4)==0){
- lookup(a);
- }
- }
- return 0;
- }
复制代码 |
|