C++找素数

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:50:07
找素数
设计一个函数,找出所有m至n以内(包括m和n)满足I , I+4, I+10都是素数的整数。

Input

从键盘输入m和n(2<m<n<200000)。输入数据有多组,输出所有m至n以内(包括m和n)满足I , I+4, I+10都是素数的整数,如果没有找到请输出“no”。每行只输出一个素数,每组输出结果用“#####”隔离。

Output

输入数据有多组,输出所有m至n以内(包括m和n)满足I , I+4, I+10都是素数的整数,如果没有找到请输出“no”。每组输出结果用“#####”隔离。

Sample Input

7 43
5300 5600

Sample Output

7
13
19
37
43
#####
no
#####

不知道你所说的一组数是什么意思,正面是我编的,经VC++6.0编绎通过:

#include<iostream>
#include<cmath>
#include<conio.h>
using namespace std;

void zhao(int a,int b);
int shushu(int a);

int main()
{
cout<<"请输入区间的两个端点值a,b:"<<endl;
int a,b;
cin>>a>>b;
if(a>b)
{
int t=a;
a=b;
b=t;
}//如果a>b,则交换
zhao(a,b);
getch();
return 0;
}

void zhao(int a,int b)//找出满足条件的数
{
for(int i=a;i<=b;i++)
{
if(i==1) continue;
if(shushu(i)&&shushu(i+4)&&shushu(i+10))//如果i,i+4,i+10都是素数,则输出
{
cout<<i<<endl<<"#####"<<endl;
}
}
cout<<"no"<<endl<<"#####"<<endl;
}

int shushu(int a)//判断一个数是否为素数
{
int k=1,t=sqrt(a);
for(int i=2;i<=t;i++)
if(a%i==0)
k=