from math import sqrt def inscribedSemiperimeter(iterations): sides = 6 sideSquared = 1 for x in range (iterations): sideSquared = sideSquared/4 + (1- sqrt (1- sideSquared/4))**2 sides=sides*2 pi=sqrt(sideSquared)*(sides/2) return pi def change(iterations): return inscribedSemiperimeter(iterations+1) - inscribedSemiperimeter(iterations) def upperBound(iterations): return inscribedSemiperimeter(iterations) + change(iterations-1)