#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
简单来说,用筛法筛个素数表,然后遍历一遍,够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;
}