//目的: コンソールに emirp する場合、最初の 'n' (ユーザーが選択した) 番号を 1 行に 5 つずつ表示します。//注: 「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」までのすべての emirp を計算します。
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 とそれ自体の 2 回ゼロになります。
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;
}