一、问题及代码:
/*
* 文件名称:素数和回文
* 作 者: 钟朋
* 完成日期: 2016年6 月 2 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:
* 问题描述:编制2个返回值为int型的函数,用于判断参数是否为素数和回文
* 程序输出:
* 问题分析:
* 算法设计:
*/
#include <iostream.h>
int isPrimer(int n)
{
int l;
for(l=2;l<n;l++)
{
if (n%l==0)
{
return 1;
}
} //判断素数
return 0;
}
int isPalindrome(int n)
{
int i,j;
if(n<10) return 1;
else if(n<100)
{
i=n%10;
j=n%100/10;
if(i==j) return 1;
}
else if(n<=300)
{
i=n%10;
j=n/100;
if(i==j) return 1;
}
return 0;
}
int isreversibleprimer(int n)
{
int a,b,c;
if(n<10&&isPrimer(n)==0) return 1;
else if(n<100)
{
a=n%10;
b=n/10;
c=a*10+b;
if(isPrimer(c)==0&&isPrimer(n)==0) return 1;
}
else if(n<=300)
{
c=(n%10)*100+(n%100/10)*10+n/100;
if(isPrimer(c)==0&&isPrimer(n)==0) return 1;
}
return 0;
}
void main()
{
int i,j=0,k=0,l=0,m=0;
cout<<"正在输出300以内的素数。。。。"<<endl;
for(i=2;i<=300;i++)
if(isPrimer(i)==0)
{
cout<<i<<" ";
j++;
if(j%7==0) cout<<endl;
}
cout<<endl;
cout<<"正在输出300以内的回文数。。。。"<<endl;
for(i=2;i<=300;i++)
if(isPalindrome(i)==1)
{
cout<<i<<" ";
k++;
if(k%7==0) cout<<endl;
}
cout<<endl;
cout<<"正在输出300以内的所有回文素数。。。。。"<<endl;
for(i=2;i<=300;i++)
if(isPalindrome(i)==1&&isPrimer(i)==0)
{
cout<<i<<" ";
l++;
if(l%7==0) cout<<endl;
}
cout<<endl;
cout<<"正在输出300以内的所有可逆素数。。。。。"<<endl;
for(i=2;i<=300;i++)
if(isreversibleprimer(i)==1)
{
cout<<i<<" ";
m++;
if(m%7==0) cout<<endl;
}
cout<<endl;
}
二、运行结果:
三、心得体会:
写函数还是有点不会,需要多多练习,有些关键东西还没弄懂。
四、知识点总结:
写函数需要注意返回值return 0;以及形参和实参。