1. 程式人生 > >第十一週 專案六:輸出1000以內的所有迴文素數

第十一週 專案六:輸出1000以內的所有迴文素數

問題及程式碼:

/*
* Copyright (c) 2014, 煙臺大學計算機學院
* All rights reserved.
* 檔名稱:Project4.cpp
* 作    者:李楠
* 完成日期:2014年11月7日
* 版 本 號:v1.0
*
* 問題描述:編制一個返回值為bool型的函式isPrimer(),用於輸出1000以內的迴文素數(是迴文素數返回true,否則false),自編main函式用於測試;
* 輸入描述:一個整數
* 程式輸出:略
*/
#include <iostream>
using namespace std;
bool isPalindrome(int);
bool isPrimer(int);
int reverse(int x);
int main()
{
    int p,j;
    p=1000;
    cout<<"1000以內的迴文素數有:"<<endl;
    for(j=10;j<=p;++j)
        {
          if(isPalindrome(j)&&isPrimer(j))
          cout<<j<<"  ";
        }
    return 0;
}
bool isPalindrome(int n)
{
    int r,l=0,m;
    m=n;
    bool ispalindrome=false;
    while(m>0)
    {
        r=m%10;
        l=l*10+r;
        m=m/10;
    }
    if(l==n)
        ispalindrome=true;
    return ispalindrome;
}
bool isPrimer(int n)
{
    int l,i;
    bool isprimer=true;
    for(i=2;i<n;++i)
    {
        l=n%i;
        if(l==0)
        {
            isprimer=false;
            break;
        }
    }
    return isprimer;
}

執行結果:

知識點總結:

在前兩個關於素數和迴文數的基礎上,很輕鬆就能完成這個程式,感覺如此順暢,真是不多見!!!

學習心得:

有了同伴的精神支援,寫再長的程式也不會感覺累,雖然會有分歧,但是我萌依然是棒棒的好基友啊~好盆友~