P1217 [USACO1.5] 回文质数 Prime Palindromes

标题:P1217 [USACO1.5] 回文质数 Prime Palindromes

链接:https://www.luogu.com.cn/problem/P1217

思路:

1.暴力枚举,超时

2.回文和质数共同判断,超时

3.数字通过 string s=to_string(n);转化为字符串,超时

+:字符串转为数字int x=stoi(n);

4.找规律,有偶数位的回文数(除了11)必然不是质数

代码:

#include<bits/stdc++.h>
using namespace std;
bool ok1(int n){//质数
	if(n==1) return false;
	if(n==2) return true;
	for(int i=2;i<=sqrt(n);i++){
		if(n%i==0) return false;
	}
	return true;
}
bool ok2(int x)//回文数
{
	int a[20], flag = 1;
	while (x > 0)
	{
		a[flag] = x % 10;
		x /= 10;
		flag++;
	}
	for (int i = 1; i <= flag / 2; i++)
		if(a[i] != a[flag-i]) return false;
	return true;
}

int main()
{
	int a,b;
	scanf("%d %d", &a, &b);
	if(a%2==0) a++;
	for(int i=a;i<=b;i=i+2){
		if(!ok2(i)) continue;
		if(!ok1(i)) continue;
		printf("%d\n", i);
	}
	return 0;
}

 

posted @   hanbaodao  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示