//目的:如果 emirps 到控制台,则显示第一个“n”(用户选择)数字,每行五个。//注意:“emirp”是一个质数,反转时也是质数。
#include <iostream>
using namespace std;
bool isPrime(int value); //Prototyle for "prime number function"
int reverse (int value2); //Prototype for "emirp function"
int main()
{
//向用户询问一个正数
cout << "Please enter a positive number: ";
int n;
cin >> n;
//拒绝负值输入
if ( n < 1)
{
cout << "INVALID NUMBER \n";
}
else
{
//计算直到'n'的所有emirps。
int test = 0;
int number = 2;
while (test < n)
{
if (isPrime(number) && reverse(number))
{
cout << "\n" << reverse(number) << "\t\t\t";
test++;
}
else
{
test++;
}
}
}
system("pause");
return 0;
}
bool isPrime(int value)
{
//如果值是素数,则余数(计数)将为零两次——对于 1 和它本身。
int divisor = 1;
int count = 0;
int prime = 0;
if (value % divisor == 0)
{
count++;
++divisor;
}
if (count = 2)
{
return true;
}
else
{
return false;
}
}
int reverse(int value2)
{
//reverse the number
value2*=10;
value2 = value2 %10;
value2/=10;
//与素数函数相同的过程
int divisor2 = 1;
int count2 = 0;
int emirp = 0;
if (value2 % divisor2 == 0)
{
count2++;
++divisor2;
}
if (count2 = 2)
{
int emirp = value2;
}
return emirp;
}