|
100項すべて求めるには、PCパワーがかなり必要である。
!問題
!次の条件を満たすような100個の相異なる正整数の数列 a[1],a[2], … ,a[100]
!が存在することを証明せよ。
!
!(条件) 99以下のすべての正整数nに対して、(a[n])^2 + (a[n+1])^2 は平方数である。
!参考サイト
! http://oeis.org/A076672 並び 6,…
! http://oeis.org/A076674 並び 9,…
! http://oeis.org/A076676 並び 11,…
!答え
!0<a[1]<a[2]<a[3]<a[4]<a[5]< … となる増加列を考える。
!
!a[1]^2 a[2]^2 p^2
!a[2]^2 a[3]^2 q^2
!a[3]^2 a[4]^2 r^2
!a[4]^2 a[5]^2 s^2
! :
!
!実際に、いくつかの並びを求めてみる。
! 1,…
! 2,…
! 3,4,… 下記の4から始まる並びに吸収される
! 4,…
!
!一般に、a[1]≧5(予想)では、いずれかの並びに吸収されて、無限に増加列がつくれる。
! 5,12,… 12から始まる並び
! 6,8,… 8から始まる並び
! 7,24,… 24から始まる並び
! 8,15,… 15から始まる並び
! 9,12,… 12から始まる並び
! 10,24,… 24から始まる並び
! 11,60,… 60から始まる並び
! 12,16,… 16から始まる並び
! :
! 15,20,… 20から始まる並び
! 16,30,… 30から始まる並び
! :
!
!したがって、a[1]<a[2] すなわち、A=1,2,3,4,…として、
!A<BかつA^2+B^2=P^2となるBを探せばよい。
!
!実際に、数の並びの生成を考察してみる。
!
!自然数m,nかつm>nとして、(m^2-n^2, 2mn, m^2+n^2)は、ピタゴラス数をつくるので、
!(A,B,P)=(m^2-n^2, 2mn, m^2+n^2)または(2mn, m^2-n^2, m^2+n^2)を考える。
!Aが1の場合、ピタゴラス数はない。
!Aが素数
! Aが2の場合、ピタゴラス数はない。
! 奇素数
! A=m^2-n^2の形で、A=(m+n)(m-n)=p*1より、m=(p+1)/2, n=(p-1)/2
! このとき、mとnは互いに素なので、既約なピタゴラス数をつくる。
!Aが合成数
! Aが奇数
! A=m^2-n^2の形で、A=(m+n)(m-n)=s*t(s,tは奇数かつs>t)より、
! m=(s+t)/2, n=(s-t)/2とするピタゴラス数をつくる(つくれる)。
! または、既約なピタゴラス数のk倍(p*k,q*k,r*k)
! Aが偶数
! Aが4の場合、ピタゴラス数はない。
! A≧6の場合、
! A=2mnの形で、ピタゴラス数をつくる(つくれる)。
! または、既約なピタゴラス数のk倍(p*k,q*k,r*k)
!
!とすれば良さそうである。
OPTION ARITHMETIC RATIONAL !多桁整数
LET A=6 !a[1]
LET K=0 !個数
DO WHILE K<100
LET B=A+1 !a[2] ※a[n]<a[n+1]
LET T=2*A*B+1 !A^2+B^2=A^2+(A+1)^2=2A(A+1)+1=2AB+1
DO !A<Bとして、A^2+B^2=P^2となるBを探す
LET P=INTSQR(T)
IF P*P=T THEN EXIT DO !平方数なら
!ピタゴラス数
LET T=T+2*B+1 !A^2+(B+1)^2=(A^2+B^2)+2B+1
LET B=B+1
LOOP
LET K=K+1 !結果を表示する
PRINT STR$(K);": "; A;B;P; T
LET A=B !a[2],a[3],…
LOOP
END
|
|