您的位置:首页 > 编程语言 > C语言/C++

C++第七次实验——素数和回文

2016-06-05 22:48 323 查看
一、问题及代码

/*
* 文件名称:1.cpp
* 作    者:高琨
* 完成日期:2016 年 6月 5日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:输出300以内素数,回文数,回文素数,可逆素数
* 输入描述:无
* 问题描述:略
* 程序输出:略
* 问题分析:冒泡法循环数组
* 算法设计:无
*/
#include<iostream.h>
int isPrimer(int n)
{
int i,k,j=1;
for(i=2;i<n;i++)
{
k=n%i;
if(k==0)
{
j=0;break;
}
}
return j;
};
int isPalindrome(int n)
{
int i,j=0,k=1;
i=n;
while(i!=0)
{
j=j*10+i%10;
i=i/10;
}
if(j!=n)
k=0;
return k;
};
int main()
{
int i,j=0,k=0,m=0,n=0,x,y,a[100],b[100],c[100],d[100];
for(i=2;i<300;i++)
{
if(isPrimer(i))
{
a[j++]=i;
x=i;
y=0;
while(x!=0)
{
y=y*10+x%10;
x=x/10;
}
if(isPrimer(y))
{
b[k++]=i;
}
}
if(isPalindrome(i))
{
c[m++]=i;
if(isPrimer(i))
d[n++]=i;
}
}
cout<<m<<n;
cout<<"300以内所有素数:"<<endl;
for(i=0;i<j;i++)
{
cout<<a[i]<<"\t";
if((i+1)%7==0)
cout<<endl;
}
cout<<endl<<"300以内所有回文:"<<endl;
for(i=0;i<m;i++)
{
cout<<c[i]<<"\t";
if((i+1)%7==0)
cout<<endl;
}
cout<<endl<<"300以内所有回文素数:"<<endl;
for(i=0;i<n;i++)
{
cout<<d[i]<<"\t";
if((i+1)%7==0)
cout<<endl;
}
cout<<endl<<"300以内所有可转素数:"<<endl;
for(i=0;i<k;i++)
{
cout<<b[i]<<"\t";
if((i+1)%7==0)
cout<<endl;
}
return 0;
}
二、运行结果



三、心得体会

函数的编写大大简便了程序行数,不过有点难。。。

四、知识点总结

函数的编写及其调用可以简化编程量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: