46 lines
887 B
Ruby
46 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
|