template.cpp

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

CPP
46
字号
//============================
//程序名称: .cpp
//程序描述: 
//作者: 
//日期:
//版本号: V0.0.1
//============================

//=====================================
// 5位以内的对称素数
//=====================================
#include<fstream>
#include<iostream>
#include<cmath>
using namespace std;
//-------------------------------------
bool isSym(int n)
{
	if (n < 10)
		return true;
	if (n == 11)
		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()
{
	//如果为素数,标记为0;在初始状态,都标记为0
	int prime[100000] =
	{
		1, 1, 0
	};  //
	int q = sqrt(100000.0);   // 316
	for (int i = 2; i <= q; ++i)   // 构造素数集合
		if (!prime[i])
			for (int j = i*i; j < 100000; j += i)
				prime[j] = 1;

	//ifstream cin("pr1050C.txt");
	for (int n; cin >> n;)
		cout << ((n < 100000 && !prime[n] && isSym(n)) ? "Yes\n" : "No\n");
}//====================================

⌨️ 快捷键说明

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