- κ·Έλ zpμμ μμ 빨리 ꡬνλ λ°©λ²μ νλ μ μ΄ μλλμ£ . λ κ·Έλ°κ±° λνλ¬ νλ νλλ°..;;
- λΌμ λ¦¬κ² λκ»΄μ§λλ€. μκ³ λ¦¬μ¦μ μ€μμ±μ..
- ν
μ€νΈ ν΄μ 5μ΄ λκΈ°λ©΄ λ€μ μ§μ€λΌλ€μ. 첨μ μμ κ± μ무λ κ²λ ꡬν΄μ λλλ.. ν μ²λ§μ―€ κ°λκΉ μ΄μ΄μλ μκ°μ΄ λμ€λκ΅°μ..;; κ·Έλμ μμμ μ±μ§ μκ°ν΄μ μ΄λ¦¬μ 리 λ―μ΄ κ³ μΉλ€κ° λ³ μ΄μν λ°©λ²μΌλ‘ 9κ° ν
μ€νΈ λͺ¨λ 5μ΄ μ΄λ΄ ν΅κ³Ό νμ΅λλ€. γ
.γ
λ§μ§λ§ ν
μ€νΈλ 4.9xXXμ΄ λΌλ;;--;
~cpp
#include <iostream>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("pprime.in");
ofstream fout("pprime.out");
void InputMinMax(int& n, int& m);
string IntConvertToString(int n);
bool IsPrime(const int& n);
bool IsPalinDromes(const string& str);
void OutputResult(const int& n, const int& m);
void FillPrimeList(const int& n, const int& m);
int main()
{
int max,min;
InputMinMax(min, max);
OutputResult(min,max);
return 0;
}
void InputMinMax(int& min, int& max)
{
fin >> min;
fin >> max;
}
void OutputResult(const int& min, const int& max)
{
int init;
if(min<7)
init = 5;
else
init = (min/6)*6 + 1;
bool flag[3] = {false,};
for(int i = init ; i <=max ;)
{
if(IsPalinDromes(IntConvertToString(i)))
{
if(IsPrime(i))
{
fout << i << endl;
}
}
int temp;
if(i >= 1000 && !flag[0])
{
temp = 9997;
flag[0] = true;
}
if(i >= 100000 && !flag[1])
{
temp = 999997;
flag[1] = true;
}
if(i >= 10000000 && !flag[2])
{
temp = 99999997;
flag[2] = true;
}
if(flag[0] && flag[1] && flag[2])
i = temp;
if(i%6==1)
i += 4;
else if(i%6==5)
i += 2;
}
}
string IntConvertToString(int n)
{
int maxlessn ;
string ret;
for(int i = 1 ; i <= 100000000 ; i *= 10)
{
if(i > n)
{
maxlessn = i/10;
break;
}
}
for(int i = maxlessn ; i >= 1 ; i /= 10)
{
int t = n / maxlessn;
n -= maxlessn * t;
maxlessn /= 10;
ret += (char)t + 48;
}
return ret;
}
bool IsPalinDromes(const string& str)
{
if( (str.length() % 2 == 0) && str.length() < 2)
return false;
int n = str.length()/2;
for(int i = 0 ; i < n ; i++)
{
if( str[i] != str[str.length() - i - 1] )
return false;
}
return true;
}
bool IsPrime(const int& n)
{
if(!(n%2))
return false;
for(int i = 3 ; i <= sqrt(n) ; i+=2)
{
if(!(n%i))
return false;
}
return true;
}