题目
素数是质数的另一个名字。两个相差为2的素数称为素数对。如5和7是素数对,9和7不是素数对,2和5不是素数对。输入2个正整数,判断它们是不是素数对,如果是,输出Yes,否则输出No。
输入格式:
一行包含2个正整数,以空格分开,均不超过1000000 5 7
输出格式:
Yes或者No,代表是否是素数对
输入样例:
19 17
输出样例:
Yes
输入样例:
2 5
输出样例:
No
输入样例:
3 1
输出样例:
No
代码实现
#include <iostream>
#include<cmath>
#include<algorithm>
using namespace std;
bool isPrime(int num)
{
bool result = true;
for (int i = 2; i < ceil(1.0*sqrt(num)); i++)
{
if (num%i==0)
{
result = false;
break;
}
}
return result;
}
bool isPrimePair(int num1,int num2)
{
bool is_primes = true;
if(abs(num1-num2)!=2)
{
is_primes = false;
}
else
{
bool is_prime1 = isPrime(num1); //可见域
bool is_prime2 = isPrime(num2);
if ((!is_prime1) || (!is_prime2))
{
is_primes = false;
}
}
return is_primes;
}
int main()
{
int number1,number2;
bool is_primes = true;
string result;
cin>>number1>>number2;
//cout<<a<<" and "<<b<<endl;
is_primes = isPrimePair(number1,number2);
result = is_primes ? " is prime pair" : " not prime pair";
cout<<number1<<" and "<<number2<<result<<endl;
return 0;
}