[TYVJ1334] powermax

powermax

描述

对于一个整数K,有很多组数对(M,N)满足如下两个性质:
1.1<=M<=N<=K
2.(N^2-MN-M^2)^2=1
求一对(M,N)使M^2+N^2最大.

输入格式

一个整数K

输出格式

两个整数M,N

输入

1995

输出

987 1597

备注

时限0.5s
1<=k<=10^9

题解

  • (n2nmm2)2=1[1]
  • =>((n+m)2n(n+m)n2)2=1[2]

  • F[a]

  • max(n2+m2),nm(mnk)

  • m=F[x]    n=F[x+1]

  • [1]=>(F[x+1]2F[x+1]F[x]F[x]2)2=1[3]

  • [3][2]F[y+1]=n+m=F[x+1]+F[x]F[y]=n=F[x+1]F[y+1]F[y]=m=F[x]

  • [捂脸]有点蒙QAQ

  • F[a]为斐波那契数列
var
 x:array[0..50]of longint;
 i,j,k:longint;
begin
 readln(k); x[0]:=1; x[1]:=1;
 for i:=2 to 100 do
  begin
   x[i]:=x[i-1]+x[i-2];
   if x[i]>k then begin writeln(x[i-2],' ',x[i-1]); halt; end;
  end;
end.

你可能感兴趣的:(数论—其他)