본문 바로가기

알고리즘

Boj 1990 c++소수인 팰린드롬

#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