#include <bits/stdc++.h>
using namespace std;

bool prime(int n) {
	if (n < 2) {
		return false;
	} else {
		int nn = sqrt(n);
		for (int i = 2; i <= nn; i++) {
			if (n % i == 0) {
				return false;
			} 
		}
	}
	return true;
}

int main() {
	
	// 数学专题
	
	// 穷举法 求所有公因数
	 
	int a, b;
	cin >> a >> b;
	if (a > b) swap(a, b);
	for (int i = 1; i <= a; i++) {
		if (a % i == 0 && b % i == 0) {
			cout << i << endl;
		}
	} 
	
	// 穷举法 求最大公因数
	
	for (int i = a; i >= 1; i--) {
		if (a % i == 0 && b % i == 0) {
			cout << i << endl;
			break;
		}		
	} 
	
	// 辗转相除法 求最大公因数
	
	int a, b, c;
	cin >> a >> b;
	if (a < b) swap(a, b); 
	c = a % b;
	while (c > 0) {
		a = b;
		b = c;
		c = a % b;
	}
	cout << b << endl;
	
	// 穷举法 求最小公倍数
	
	int a, b;
	cin >> a >> b;
	if (a > b) swap(a, b);
	for (int i = b; i <= a * b; i++) {
		if (i % a == 0 && i % b == 0) {
			cout << i << endl;
			break;
		}
	}
	
	// 穷举法优化 求最小公倍数 
	
	int a, b;
	cin >> a >> b;
	if (a > b) swap(a, b);
	for (int i = b; i <= a * b; i = i + b) {
		if (i % a == 0 && i % b == 0) {
			cout << i << endl;
			break;
		}
	}	 
	
	// 借助最大公约数的终极优化
	
	lcm(a, b) = (a * b) / gcd(a, b);
	
	
	// 判断质数(素数) (穷举大法) 
	
	int n;
	cin >> n;
	bool isPrime = true;
	if (n < 2) {
		isPrime = false;
	} else {
		for (int i = 2; i < n; i++) {
			if (n % i == 0) {
				isPrime = false;
				break;
			}
		} 	
	}
	if (isPrime) {
		cout << "Yes" << endl; 
	} else {
		cout << "No" << endl;
	}
	
	// 判断质数(素数) (优化) 
	
	int n;
	cin >> n;
	bool isPrime = true;
	if (n < 2) {
		isPrime = false;
	} else {
		int nn = sqrt(n); 
		for (int i = 2; i <= nn; i++) {
			if (n % i == 0) {
				isPrime = false;
				break;
			}
		} 	
	}
	if (isPrime) {
		cout << "Yes" << endl; 
	} else {
		cout << "No" << endl;
	}	
	
	// 哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和
	int cnt = 0;
	for (int n = 4; n <= 1000; n += 2) {
		for (int i = 2; i < n - 1; i++) {
			if (prime(i) && prime(n - i)) {
				cout << n << "=" << i << "+" << n - i << endl;
				cnt++;
				break;
			}
		}
	} 
	cout << "cnt = " << cnt << endl;
	 
	return 0;
}