C++回文數及素數成績盤算辦法。本站提示廣大學習愛好者:(C++回文數及素數成績盤算辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C++回文數及素數成績盤算辦法正文
本文實例講述了C++回文數及素數成績盤算辦法。分享給年夜家供年夜家參考,詳細以下:
/*
* 作 者: 劉同賓
* 完成日期:2012 年 11 月 16 日
* 版 本 號:v1.0
*
* 輸出描寫: 編制一個前往值為bool型的函數isPrimer(),用於斷定參數能否為素數,isPalindrome()用於斷定參數能否是回文數,挪用函數答復以下成績(可以分離編制幾個法式完成,也能夠在一個main()函數中完成,輸入時,用顯著的提醒語,解釋正在完成哪一個義務。)
(1)輸入10000之內的一切素數。
(2)輸入10000之內的一切回文數。
(3)輸入10000之內的一切回文素數。
* 成績描寫:
* 法式輸入:
* 成績剖析:略
* 算法設計:略
*/
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int fanxushu(int i); //函數聲明
bool ispalindrome(int i);
bool isprimer(int i);
int main()
{
int a;
cout<<"輸入10000之內的一切素數:"<<endl;
for(a=2;a<=10000;++a)
{
if(isprimer(a))
{
cout<<a<<" ";
}
}
cout<<endl<<endl;
cout<<"輸入10000之內的一切回文數:"<<endl;
for(a=2;a<=10000;++a)
{
if(ispalindrome(a))
{
cout<<a<<" ";
}
}
cout<<endl<<endl;
cout<<"輸入10000之內的回文素數:"<<endl;
for(a=2;a<=10000;++a)
{
if(isprimer(a)&&ispalindrome(a))
{
cout<<a<<" ";
}
}
cout<<endl<<endl;
return 0;
}
int fanxushu(int i) //反序數函數
{
int l;
l=0;
while(i>0)
{
l=l*10+i%10;
i=i/10;
}
return l;
}
bool ispalindrome(int i) //回文數函數
{
int j,l;
bool palindrome=false;
j=i;
l=0;
while(j>0)
{
l=l*10+j%10;
j=j/10;
}
if(i==l)
{
palindrome=true;
}
return palindrome;
}
bool isprimer(int i) //素數函數
{
int j,k;
bool prime=true;
k=int(sqrt(i));
for(j=2;j<=k;++j)
{
if(i%j==0)
{
prime=false;
break;
}
}
return prime;
}
運轉後果以下圖所示:
願望本文所述對年夜家C++法式設計有所贊助。