第十一周项目6-回文&素数(四) .
编制main函数,调用(一)、(二)、(三)定义的3个函数
• 输出1000以内的所有素数。
• 输出1000以内的所有回文数。
• 输出1000以内的所有回文素数。
• 若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。
/* *Copyright (c) 2014,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2014年11月6日 *版本号:v1.0 */ #include<iostream> using namespace std; int main() { bool isPrimer(int n); bool isPalindrome(int n); int reverse(int x); int m; cout<<"1000以内所有的素数:"; for (m=1; m<=1000; m++) { if (isPrimer(m)) cout << m << " "; } cout<<endl<<endl<<"1000以内所有的回文数:"; for(m=1; m<=1000; m++) { if (isPalindrome(m)) cout << m << " "; } cout<<endl<<endl<<"1000以内所有的回文素数:"; for (m=1; m<=1000; m++) { if (isPrimer(m)) { if (isPalindrome(m)) cout << m << " "; } } cout<<endl<<endl<<"10000以内所有的可逆素数:"; int n; for (m=1; m<=10000; m++) { if (isPrimer(m)) { n=reverse(m); if (isPrimer(n)) cout<<m<<" "; } } return 0; } bool isPrimer(int n) { if(n<2) return false; for (int i=2; i*i<=n; i++) { if(n % i == 0) return false; } return true; } bool isPalindrome(int n) { int x = 0, r,o; o=n; while (n > 0) { r = n % 10; x = x * 10 + r; n = n / 10; } if (o==x) return true; else return false; } int reverse(int x) { int m=0,r; while (x>0) { r=x%10; m=m*10+r; x=x/10; } return m; }
运行结果:
@ Mayuko