728x90
https://www.acmicpc.net/problem/1747
while문을 돌면서 N보다 크거나 같은 수를 팰린드롬인지 소수인지 체크해주고 맞다면 바로 나와서 값을 출력하면 된다.
시간제한이 2초라서 for문으로 돌리면서 소수를 찾아도 충분하다..
#include <iostream>
#include <algorithm>
using namespace std;
bool isPrime(int n){
if(n == 1) return false;
for(int i=2; i<n; i++){
if(n % i == 0) return false;
}
return true;
}
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n;
cin >> n;
while(1){
string s = to_string(n);
bool flag = false;
for(int i=0; i<s.size()/2; i++){
if(s[i] != s[s.size()-1-i]) {
flag = true;
break; //팰린드롬아님
}
}
if(!flag && isPrime(n)){
cout << n << '\n';
break;
}
n++;
}
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 2661번: 좋은수열 (0) | 2022.07.26 |
---|---|
[백준/c++] 3649번: 로봇 프로젝트 (0) | 2022.07.26 |
[백준/c++] 1946번: 신입 사원 (0) | 2022.07.25 |
[백준/c++] 2529번: 부등호 (0) | 2022.07.25 |
[백준/c++] 1449번: 수리공 항승 (0) | 2022.07.25 |