C++ 隨便輸入一個數 求它最近的大於它質數

如提 我要怎麼去寫出這個程式ㄚ 請會寫的大大幫我想依下 謝 謝了

2 個解答

評分
  • 1 0 年前
    最佳解答

    先前有人問過相同的 C 程式碼,我只是把它改寫成 C++ 而已。

    //Power by Microsoft Visual Studio 2005

    //可以使用 Dev-C++ 編譯此程式

    #include<iostream>

    #include<cstdlib>

    #include<cmath>

    using namespace std;

    int main(int argc,char *argv[]){

    //=====START=====//

    bool check_prime(int number),retHigh;

    int a,nhighPrime;

    cout<<"Input a integer: ";

    cin>>a;

    nhighPrime=a;

    do{

    retHigh=check_prime(nhighPrime);

    nhighPrime++;

    }while(!retHigh);

    cout<<"Bigger prime: "<<--nhighPrime<<endl;

    //=====END=====//

    system("PAUSE");

    return EXIT_SUCCESS;

    }

    bool check_prime(int number){//Check number

    int i;

    bool retBoolean=true;

    //1 is True, 0 is False

    for(i=2;i<=static_cast<int>(sqrt(static_cast<float>(number)));i++){

    if((number%i)==0){

    retBoolean=false;//false

    break;

    }

    }

    return retBoolean;//return boolean value

    }

    2006-07-27 10:53:22 補充:

    抱歉!有一行要修改:錯誤=>nhighPrime=a;正確=>nhighPrime=a+1;

    參考資料: C++ 程式碼
  • 1 0 年前

    ......不好意思,我只會比較簡單的 = =;

    ==========================================

    #include "stdafx.h"

    #include "iostream"

    using namespace std;

    bool prime(int n);

    int _tmain(int argc, _TCHAR* argv[])

    {

    int n;

    cout<< "enter a number : ";

    cin >> n;

    for(int m = n + 1; (prime(m) == false); m++)

    {

    prime(m);

    }

    cout<< m << endl;

    return 0;

    }

    bool prime(int n)

    {

    bool result = true;

    for(int i = 2; i < n; i++)

    {

    if(n % i == 0)

    result = false;

    }

    return result;

    }

    參考資料: 自己
還有問題?馬上發問,尋求解答。