编写一个c程序,连续输出相邻的15对孪生素数

2025-05-09 06:11:06
推荐回答(2个)
回答1:

#include

void main() { int i,j,k,a,b,n;

  a=2; n=0; i=2;

  while ( n<10 ) {

    i++; for ( j=2,b=1;j<=i/2;j++ ) if ( i%j==0 ) { b=0;break; }

    if ( b ) { 

      if ( i-a==2 ) { printf("%d %d\n",a,i); n++; } 

      a=i;

    }

  }

}

回答2:

所谓孪生素数就是2个素数之差为2
简单来说,用筛法筛个素数表,然后遍历一遍,够15对就可以了。
#include
#include
#include

using namespace std;

int main()
{
bool a[1001];

int b[1001];
int k=0;
int i,j;
for(i=1;i<=1000;i++)
a[i]=1;
for(i=2;i<=1000;i++)
{
if(a[i]){
b[k++]=i;
for(j=2;i*j<=1000;j++)
a[i*j]=0;
}
}
int s=0;
for(i=0;i{
if(s==15) break;
if(b[i+1]-b[i]==2){
printf("%d %d\n",b[i],b[i+1]);
s++;
}
}
return 0;
}