f | import decimal | f | import decimal |
| a = decimal.Decimal(input()) | | a = decimal.Decimal(input()) |
| e = int(input()) | | e = int(input()) |
| decimal.getcontext().prec = 2000 | | decimal.getcontext().prec = 2000 |
| pi = decimal.Decimal(0) | | pi = decimal.Decimal(0) |
| last = -1 | | last = -1 |
| k = 0 | | k = 0 |
| sign = decimal.Decimal(-1) | | sign = decimal.Decimal(-1) |
| f_6 = decimal.Decimal(1) | | f_6 = decimal.Decimal(1) |
| f_3 = 1 | | f_3 = 1 |
| f = 1 | | f = 1 |
| while last != pi: | | while last != pi: |
| last = pi | | last = pi |
| el_1 = decimal.Decimal(sign ** k * f_6 * (13591409 + 545140134 * k)) | | el_1 = decimal.Decimal(sign ** k * f_6 * (13591409 + 545140134 * k)) |
| el_2 = decimal.Decimal(f_3 * f ** 3 * 640320 ** (3 * k)) | | el_2 = decimal.Decimal(f_3 * f ** 3 * 640320 ** (3 * k)) |
| pi += el_1 / el_2 | | pi += el_1 / el_2 |
| k += 1 | | k += 1 |
| f_6 *= 6 * k * (6 * k - 1) * (6 * k - 2) * (6 * k - 3) * (6 * k - 4) | | f_6 *= 6 * k * (6 * k - 1) * (6 * k - 2) * (6 * k - 3) * (6 * k - 4) |
| * (6 * k - 5) | | * (6 * k - 5) |
| f_3 *= 3 * k * (3 * k - 1) * (3 * k - 2) | | f_3 *= 3 * k * (3 * k - 1) * (3 * k - 2) |
| f *= k | | f *= k |
| pi = pi / decimal.Decimal(10005).sqrt() / 426880 | | pi = pi / decimal.Decimal(10005).sqrt() / 426880 |
| pi = 1 / pi | | pi = 1 / pi |
| angle = decimal.Decimal(a * pi / 200) | | angle = decimal.Decimal(a * pi / 200) |
| sin = decimal.Decimal(angle) | | sin = decimal.Decimal(angle) |
| last = decimal.Decimal(0) | | last = decimal.Decimal(0) |
| n = 1 | | n = 1 |
| f = 1 | | f = 1 |
| sign = 1 | | sign = 1 |
| a1 = decimal.Decimal(angle) | | a1 = decimal.Decimal(angle) |
| while last != sin: | | while last != sin: |
| last = sin | | last = sin |
| n += 2 | | n += 2 |
n | f *= (n - 1) * n | n | f *= n ** 2 - n |
| a1 = a1 * decimal.Decimal(angle * angle) | | a1 = a1 * decimal.Decimal(angle * angle) |
| sign *= -1 | | sign *= -1 |
| sin += a1 / f * sign | | sin += a1 / f * sign |
| cos = decimal.Decimal(1) | | cos = decimal.Decimal(1) |
| last = 0 | | last = 0 |
| n = 0 | | n = 0 |
| f = 1 | | f = 1 |
| sign = 1 | | sign = 1 |
| a1 = 1 | | a1 = 1 |
| while last != cos: | | while last != cos: |
| last = cos | | last = cos |
| sign *= -1 | | sign *= -1 |
| n += 2 | | n += 2 |
t | f *= (n - 1) * n | t | f *= n ** 2 - n |
| a1 = a1 * decimal.Decimal(angle * angle) | | a1 = a1 * decimal.Decimal(angle * angle) |
| cos += a1 / f * sign | | cos += a1 / f * sign |
| tg = decimal.Decimal(sin / cos) | | tg = decimal.Decimal(sin / cos) |
| print(f'{tg:.{e}}') | | print(f'{tg:.{e}}') |