一、问题及代码
/*
*文件名称:素数和回文
*作 者:杨翔宇
*完成日期:2016年6月5日
*版 本 号:v1.0
*对任务的求解方法及描述部分:
*输入描述:
*问题描述:
*程序输出:
*问题分析:
*算法设计:
*/
#include<iostream>
using namespace std;
int isPrimer(int n)
{
int i;
for(i=2;i<=n;i++)
{
if(n%i==0) break;
}
if(i==n) return 1;
else return 0;
}
int isPalindrome(int n)
{
int j,i=0,k=0,a[100];
do
{
a[i]=n%10;
n/=10;
i++;
}
while(n!=0);
for(j=0;j<i/2;j++)
{
if(a[j]==a[i-j-1])
k++;
}
if(k==(i/2)) return 1;
else return 0;
}
int isReversible_prime(int n)
{
int m=0,i=0,j=0,a[100];
do
{
a[i]=n%10;
n/=10;
i++;
}
while(n!=0);
for(j=0;j<i;j++)
m=m*10+a[j];
if(isPrimer(m))
{
return 1;
}
else return 0;
}
int main()
{
int i,j=0;
cout<<"1,输入300以内所有素数:\n";
for(i=0;i<=300;i++)
{
if( isPrimer(i))
{
j++;
cout<<i<<" \t";
if(j%7==0)
cout<<"\n";
}
}
cout<<"\n\n2,输入300以内所有回文数:\n";
for(i=2,j=0;i<=300;i++)
{
if( isPalindrome(i))
{
j++;
cout<<i<<" \t";
if(j%7==0)
cout<<"\n";
}
}
cout<<"\n\n3,输入300以内所有回文素数:\n";
for(i=2,j=0;i<=300;i++)
{
if( isPalindrome(i)&&isPrimer(i))
{
j++;
cout<<i<<" \t";
if(j%7==0)
cout<<"\n";
}
}
cout<<"\n\n4,输入300以内所有可逆素数:\n";
for(i=2,j=0;i<=300;i++)
{
if(isPrimer(i))
{
if( isReversible_prime(i))
{
j++;
cout<<i<<" \t";
if(j%7==0)
cout<<"\n";
}
}
}
}
二、运行结果
三、心得体会
c++越来越难越来越接收不了,完全是别人一步步教会的
四、知识点总结