using System;
namespace LuoGu
{
public class LuoGu
{
public static void Main()
{
string inp = Console.ReadLine();
string[] input = inp.Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
// 最后一个测试点!!!
if (b > 10000000)
{
b = 10000000;
}
for (int i = a; i <= b; i++)
{
// 偶数全部不符合
if (i % 2 != 0)
{
if (IsPalindrome(i))
{
if (IsPrime(i))
{
Console.WriteLine(i);
}
}
}
}
}
// 判断是否是质数
private static bool IsPrime(int x)
{
if (x <= 1)
{
return false;
}
if (x == 2)
{
return true;
}
if (x % 2 == 0)
{
return false;
}
int limit = (int)Math.Sqrt(x);
for (int i = 3; i <= limit; i++)
{
if (x % i == 0)
{
return false;
}
}
return true;
}
// 判断是否为回文数
private static bool IsPalindrome(int x)
{
int original = x;
int reversed = 0;
while (x > 0)
{
int remainder = x % 10;
reversed = reversed * 10 + remainder;
x = x / 10;
}
return original == reversed;
}
}
}
注意这一段代码
// 最后一个测试点!!!
if (b > 10000000)
{
b = 10000000;
}
限制循环右边界,否则可能要循环几千万次(个人见解)