P1217 [USACO1.5] 迴文質數 Prime Palindromes

hanbaodao發表於2024-11-27

標題: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;
}

相關文章