题意:
定义了个概念就是(p, p + 6)这样的一对素数叫做,sexy primes
给你一个数判断下这个数是不是sexy primes
,是的话输出Yes
然后输出另一个数,否则输出No
和比这个数大的最小的一个sexy primes
Code
import java.util.Scanner;
public class Main
{
public static boolean prime(int a)
{
if (a < 2) return false;
for (int i = 2; i * i <= a; i++)
{
if (a % i == 0) return false;
}
return true;
}
public static int sex(int a)
{
for (int i = a + 1; i < 1e9; i++)
{
if (prime(i))
{
if (prime(i - 6) || prime(i + 6))
{
return i;
}
}
}
return 0;
}
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (prime(n))
{
if (prime(n - 6))
{
System.out.println("Yes");
System.out.println(n - 6);
}
else if (prime(n + 6))
{
System.out.println("Yes");
System.out.println(n + 6);
}
else
{
System.out.println("No");
System.out.println(sex(n));
}
}
else
{
System.out.println("No");
System.out.println(sex(n));
}
in.close();
}
}