CF171F ucyhf

题意

给定数 nn,求第 nn 个反素数(反素数定义为一个数 xx 是素数,将其每一位反转后得到数 pp,若 pxp \neq xpprimep \in prime,也就是 pp 是素数时 xx 是一个反素数)。

解法

暴力枚举即可,从小到大枚举每一个数进行判断即可。

代码:

#pragma GCC optimize("-Ofast")
#pragma GCC target("avx,sse,sse2,sse3,sse4")
#pragma unroll 10
#include <bits/stdc++.h>
using namespace std;

int n, cnt = 0;

inline bool pd(register const int &x)
{
	if (x == 1) return false;
	for (register int i = 2; i * i <= x; ++i)
	{
		if (x % i == 0) return false;
	}
	return true;
}

int main()
{
	scanf("%d", &n);
	for (register int i = 10; ; ++i)
	{
		if (!pd(i)) continue;
		string s = to_string(i), p = s;
		reverse(s.begin(), s.end());
		if (s == p || !pd(stoi(s))) continue;
		++cnt;
		if (cnt == n)
		{
			printf("%d\n", i);
			return 0;
		}
	}
	return 0;
}
posted @ 2022-02-26 10:01  HappyBobb  阅读(11)  评论(0)    收藏  举报  来源