0

//目的: コンソールに 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;
}
4

2 に答える 2

1

If it is just about viewing the console output :

  1. Press CTRL+F5 to run application in Visual studio.

  2. just provide a getch()in main() function

And your code syntax is not in a right way :

  1.  if (count = 2) //count ==2
     {
       return true;
      }
    
  2.  if (isPrime(number) && reverse(number))
     { 
      cout << "\n" << reverse(number) << "\t\t\t";
      test++;
      }
    

will call reverse() 2 times.

modify it something like ;

int RevNum = reverse(number);

if (isPrime(number) &&RevNum)
  {
    cout << "\n" << RevNum << "\t\t\t";
    test++;
   }
于 2013-02-08T07:35:58.417 に答える
1

これはどのように構築されますか?if (カウント = 2) { ... }

また、逆関数はintを返すだけですが if (isPrime(number) && reverse(number))、その結果をどうするつもりですか?

ところで、計算全体をもう一度行うのは良い方法ではありません:

 cout << "\n" << reverse(number) << "\t\t\t"; //you already did this in your "check" 

編集:そして、それが機能しないのも不思議ではありません。 nではなく、数値(2)を毎回チェックします

于 2013-02-08T07:38:11.660 に答える