找m,n区间内所有的栾生素数并输出。栾生素数是指差为2的两个素数,例如,3和5,5和7。
①编马函数int prime(int n),判断素数。
② 编写main函数,接收键盘输入的m和n的值,寻找m,n区间内所有的李生素数并输出,并将车生素数的对数输出,若区问内没有孪生素数,则输出“该区间内无孪生素数”。
判断素数的方法是:i从2到n循环,如果n能被i整除,则n不是素数
#include<iostream>
using namespace std;
int prime(int n){
for(int i = 2;i * i <= n;i++){
if(n % i == 0){
return 0;
}
}
return 1;
}
int main(){
int m,n,cnt = 0;
cin >> m >> n;
for(int i = m;i <= n;i++){
if(prime(i) && prime(i + 2)){
cnt++;
}
}
if(cnt > 0){
cout << cnt;
return 0;
}else{
cout << "该区间内无孪生素数";
}
return 0;
}
#include<stdio.h>
int prime(int n)//函数判断是否为素数
{
for (int i=2; i * i<=n; i++)
{
if ( n%i == 0 )
return 0;
}
return 1;
}
int main(void)
{
int N, M;
int count=0;//count存放组数
scanf("%d", &M);
scanf("%d",&N);
for(int i=M; i<=N; i++)
{
if(prime(i)==1 && prime(i+2)==1)//判断i和i+2是否同为孪生素数
{
printf("%5d 和 %5d 是孪生素数\n",i,i+2);
count++;//组数+1
}
}
if (count > 0 ){
printf("\n总共有%d组孪生素数",count);
} else {
printf("\n该区间内无孪生素数");
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: