from itertools import combinations from cgitb import reset from collections import defaultdict from functools import lru_cache from sys import flags, stdin import math import re import queue from tokenize import String import typing import itertools import bisect import statistics import numpy as np # from numpy.core.function_base import _needs_add_docstring # from numpy.core.numeric import outer input = stdin.readline MOD = 1000000007 INF = 122337203685477580 def get_circle_center_and_radius(x1, y1, x2, y2, x3, y3): """ 3点を通る円の中心と半径を取得 """ d = 2 * ((y1 - y3) * (x1 - x2) - (y1 - y2) * (x1 - x3)) # print(d) if d == 0.0: exit() x = ((y1 - y3) * (y1 ** 2 - y2 ** 2 + x1 ** 2 - x2 ** 2) - (y1 - y2) * (y1 ** 2 - y3 ** 2 + x1 ** 2 - x3 ** 2)) / d y = ((x1 - x3) * (x1 ** 2 - x2 ** 2 + y1 ** 2 - y2 ** 2) - (x1 - x2) * (x1 ** 2 - x3 ** 2 + y1 ** 2 - y3 ** 2)) / -d r = math.sqrt((x - x1) ** 2 + (y - y1) ** 2) return (x, y), r def lcm(x, y): return (x * y) // math.gcd(x, y) def solve(): (n, k) = map(int, input().split()) vec = list(map(int, input().split())) acc_lcm = 1 for i in range(n): acc_lcm = lcm(acc_lcm, vec[i]) print(acc_lcm) if acc_lcm % k == 0: print("Yes") else: print("No") if __name__ == '__main__': solve()