2013-02-08 22 views
0

//目的:如果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 
    { 

//計算所有emirps多達 'N'。

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) 
{ 

//如果值是素數,則餘數(count)將爲零兩次 - 對於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; 
} 

回答

1

如果只是查看控制檯輸出:

  1. CTRL+F5運行在Visual Studio應用程序。

  2. 只是提供main()函數

一個getch()而你的代碼的語法是不是一個正確的做法:

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

調用reverse()2次。

修改它類似於;

int RevNum = reverse(number); 

if (isPrime(number) &&RevNum) 
    { 
    cout << "\n" << RevNum << "\t\t\t"; 
    test++; 
    } 
+0

我在哪裏放的getch()?代替主要功能還是之後? – user2053173

+0

在返回0;之前 – 2013-02-08 07:40:13

1

這甚至是如何構建的? 如果(計數= 2) { ... }

另外: 您反轉功能只是返回一個int,你能指望什麼 if (isPrime(number) && reverse(number))與結果呢?

這不是工作做整個計算再順便說一句的一個好辦法:

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

編輯: 難怪它不工作。 你檢查的數量值(2)每一次,都不是n

相關問題