輸出1000以內的所有素數;輸出1000以內的所有迴文數;輸出1000以內的所有迴文素數;輸出1000以內的所有可逆素數;
阿新 • • 發佈:2019-01-31
/* * Copyright (c) 2013, 煙臺大學計算機學院 * All rights reserved. * 作 者:王穎 * 完成日期:2013 年 11 月 11 日 * 版 本 號:v1.0 * * 輸入描述: 無 * 問題描述:輸出1000以內的所有素數;輸出1000以內的所有迴文數; * 輸出1000以內的所有迴文素數;輸出1000以內的所有可逆素數; * 程式輸出:略 * 問題分析:略 * 演算法設計:略 */ #include <iostream> #include <cmath> using namespace std; bool isprime(int); int reverse(int); bool ispalindrome(int); int main() { int m; cout<<"(1)輸出1000以內的所有素數"<<endl; for(m=2; m<1000; ++m) { if(isprime(m)) cout<<m<<'\t'; } cout<<endl<<endl; cout<<"(2)輸出1000以內的所有迴文數"<<endl; for(m=2; m<1000; ++m) { if(ispalindrome(m)) cout<<m<<'\t'; } cout<<endl; cout<<"(3)輸出1000以內的所有迴文素數"<<endl; for(m=2; m<1000; ++m) { if(ispalindrome(m)&&isprime(m)) cout<<m<<'\t'; } cout<<endl; cout<<"(4)輸出1000以內的所有可逆素數"<<endl; for(m=2; m<1000; ++m) { if(isprime(m)&&isprime(reverse (m))) cout<<m<<'\t'; } return 0; } bool isprime(int n) { bool prime=true; int k=int(sqrt(n)); for(int i=2; i<=k; i++) { if(n%i==0) { prime=false; break; } } return prime; } bool ispalindrome(int n) { bool palindrome=false; if(reverse(n)==n) { palindrome=true; } return palindrome; } int reverse(int x) { int m=0; while (x>0) { m=m*10+x%10; x=x/10; } return m; }
太不容易啦~\(≧▽≦)/~!!!!!!