# 1266. 소수 완제품 확률
from math import factorial
# 전체 테스트 케이스 수 T
T = int(input())
# T개의 테스트 케이스
for t in range(1, T+1):
# 정수 값이 주어진다.
A, B = map(int, input().split())
# 완제품을 만들 확률
p_A = A / 100
p_B = B / 100
# A, B장인이 만든 제품이 모두 소수가 아닐 확률을 구핮.
prime = [2, 3, 5, 7, 11, 13, 17]
total_p_A = 0
total_p_B = 0
# 완제품의 수 : 0 ~ 18개
for i in range(0, 18+1):
# 소수일 때 skip
if i in prime:
continue
# A가 만든 완제품이 소수가 아닐 확률
total_p_A += (factorial(18) // (factorial(18-i) * factorial(i))) * (p_A**i) * ((1-p_A)**(18-i))
total_p_B += (factorial(18) // (factorial(18-i) * factorial(i))) * (p_B**i) * ((1-p_B)**(18-i))
ans = 1 - (total_p_A * total_p_B)
print("#{} {:.6f}".format(t, ans, 6))
이항분포
P = nCr × p^n × (1-p)^n
조합 개수nCr = n! / (n-r)!r!
여집합의 개념A, B 둘 중 하나라도 소수일 확률 = 1 - 둘다 소수가 아닐 확률