template.cpp

来自「五位数以内的对称素数的求解方法」· C++ 代码 · 共 33 行

CPP
33
字号
#include <iostream> 
#include<cmath>	  
using namespace std;	  

bool isPrime(int n)
{
	if (n == 1)
		return false;
	if (n != 2 && n % 2 == 0)
		return false;
	for (int i = 3; i*i <= n; i += 2) // 不大于316的最大素数(317^2>100000)
		if (n % i == 0)
			return false;
	return true;
}
bool isSym(int n)
{
	if (n < 12 && n != 10)
		return true;		   // 一位数都是对称的
	if (n > 100 && n < 1000 && n / 100 == n % 10)
		return true;	   // 判断三位数
	if (n > 10000 && n / 1000 == n % 10 * 10 + n / 10 % 10)
		return true;  // 判断五位数
	return false;
}
int main()
{
	//ifstream cin("pr1050C.txt");
	for (int n; cin >> n;)
		//cout<<isPrime(n)<<endl;
		cout << (n < 100000 && isSym(n) && isPrime(n) ? "Yes\n" : "No\n");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?