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

c++作业7

2016-06-06 00:39 260 查看


项目1:素数和回文

编制2个返回值为int型的函数,用于判断参数是否为素数和回文,调用函数回答以下问题(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)
(1)输出300以内的所有素数。

(2)输出300以内的所有回文数。

(3)输出300以内的所有回文素数。

(4)若一个素数的反序数仍为素数,则称它为可逆素数。求300以内的所有可逆素数。
#include<iostream>
using namespace std;
int isPrimer(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;

}//判断素数
int isPalindrome(int n)
{
int i,j;
if(n<10) return 1;
else if(n<100)
{
i=n/10;
j=n%10;
if(i==j) return 1;
}
else if(n<300)
{
i=n/100;
j=n%10;
if(i==j) return 1;
}
return 0;
}//判断回文数
int f(int n)
{
int i,j,k,m;
if(n<10&&isPrimer(n)==1) return 1;
else if(n<100)
{
i=n/10;
j=n%10;
m=j*10+i;
if(isPrimer(n)==1&&isPrimer(m)==1) return 1;
}
else if(n<300)
{
i=n/100;
j=n%100/10;
k=n%10;
m=k*100+j*10+i;  // c=(n%10)*100+(n%100/10)*10+n/100;
if(isPrimer(n)==1&&isPrimer(m)==1) return 1;
}
return 0;
}//判断可逆素数
int main ()
{
int i,j=0,k=0,m=0,n=0;
cout<<"输出300以内的所有素数"<<endl;
for(i=2;i<=300;i++)
if(isPrimer(i)==1)
{
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)==1)
{
cout<<i<<"  ";
m++;
if(m%7==0) cout<<endl;
}
cout<<endl;//输出回文素数
cout<<"求300以内的所有可逆素数"<<endl;
for(i=2;i<=300;i++)
if(f(i)==1)
{
cout<<i<<"  ";
n++;
if(n%7==0) cout<<endl;
}//输出可逆素数
cout<<endl;
return 0;
}




项目4:数组素数排序

定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序。

#include <iostream>
using namespace std;
void sort(int p[], int n)
{
int i,j,k;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(p[j]>p[j+1])
{
k=p[j];
p[j]=p[j+1];
p[j+1]=k;
}
}//数组排序
bool prime(int x)
{
int l;
for(l=2;l<x;l++)
{
if(x%l==0) return 0;
}
return 1;
}//素数判断
void print(int p[],int n)
{
int m;
for(m=0;m<n;m++)
cout<<p[m]<<" ";
cout<<endl;
}//输出数组
int main( )
{   int a[10]={2,13,5,47,19,53,27,23,28,11};
int b[10],i,j=0;
for(i=0;i<10;i++)
if(prime(a[i])==1)
{
b[j]=a[i];
j++;
}//将a中的素数存入b数组
print(b,j); //输出排序前的b数组
sort(b,j);   //对数组b排序
print(b,j);   //输出排序后的b数组
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: