#include<iostream>
#include<vector>
using namespace std;
int main(){
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long a, b;
cin>>a>>b;
vector<long long> v;
long long start;
for(start=a; start<=10000000; start+=2){
if(start%2==0)
start++;
if(start>b)
break;
vector<int> ans(20);
long long n=start;
int ans_check=1;
int num_size=0;
while(n>=1){
ans[num_size]=n%10;
n/=10;
num_size++;
}
for(int i=0; i<num_size/2; i++){
if(ans[i]!=ans[num_size-1-i]){
ans_check=0;
break;
}
}
if(ans_check==1)
v.push_back(start);
}
for(start=0; start<=v.size()-1; start++){
int ans_check=1;
if(v[start]%2==0)
ans_check=0;
for(int i=3; i*i<=v[start]; i+=2){
if(v[start]%i==0){
ans_check=0;
break;
}
}
if(ans_check==1)
cout<<v[start]<<"\n";
}cout<<"-1";
}
아까의 연장선. 시간초과에 유의
팰린드롬을 직접 만들어 판별하는 방법도 익혀둔다. 조만간 reverse함수와 string에 대해 자세히 공부할 예정
'알고리즘' 카테고리의 다른 글
| Boj 2003 c++ 투 포인터의 장점 (0) | 2025.05.27 |
|---|---|
| Boj 3896 c++ 소수사이 수열 (0) | 2025.05.27 |
| Boj 1747 c++ 소수&팰린드롬 (0) | 2025.05.25 |
| Boj 1920 c++ 수 찾기(해시연습) (0) | 2025.05.24 |
| Boj 32201 c++ 눈사람(해시) (0) | 2025.05.24 |