47 lines
887 B
Ruby
47 lines
887 B
Ruby
|
descr=%{
|
|||
|
Triangle, pentagonal, and hexagonal numbers are generated by the following formulae:
|
|||
|
Triangle T_(n)=n(n+1)/2 1, 3, 6, 10, 15, ...
|
|||
|
Pentagonal P_(n)=n(3n−1)/2 1, 5, 12, 22, 35, ...
|
|||
|
Hexagonal H_(n)=n(2n−1) 1, 6, 15, 28, 45, ...
|
|||
|
|
|||
|
It can be verified that T_(285) = P_(165) = H_(143) = 40755.
|
|||
|
|
|||
|
Find the next triangle number that is also pentagonal and hexagonal.
|
|||
|
}
|
|||
|
|
|||
|
# number[n]=1,2 or 3 if 3 triangular, pentagonal and hexagonal
|
|||
|
$number={}
|
|||
|
def save_and_verif(t)
|
|||
|
if $number[t].nil?
|
|||
|
$number[t]=1
|
|||
|
else
|
|||
|
$number[t] += 1
|
|||
|
if $number[t] == 3
|
|||
|
puts t
|
|||
|
exit 0
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
def T(n)
|
|||
|
t=n*(n+1)/2
|
|||
|
save_and_verif(t)
|
|||
|
end
|
|||
|
def P(n)
|
|||
|
t=n*(3*n-1)/2
|
|||
|
save_and_verif(t)
|
|||
|
end
|
|||
|
def H(n)
|
|||
|
t=n*(2*n-1)
|
|||
|
save_and_verif(t)
|
|||
|
end
|
|||
|
|
|||
|
n=144
|
|||
|
while true
|
|||
|
T(n)
|
|||
|
P(n)
|
|||
|
H(n)
|
|||
|
|
|||
|
n+=1
|
|||
|
end
|