问题描述
编写一个程序,连续输出相邻的15对孪生素数(相邻的两个素数)。
分析:
判断一个数a是否是素数,只须判断2~sqrt(a)之间的数有无能整除a的数就可以了。
代码实现:
#include<stdio.h>
#include<math.h>
//判断一个数是不是一个素数
int isPrime(int a){
int flag=1,k=2;
while(k<=(int)sqrt(a) && flag){
if(a%k==0)
flag=0;
k++;
}
return flag;
}
void main(){
int k,n;
n=0;
k=2;
printf("找到如下15对孪生素数:\n");
while(n<15){
if(isPrime(k) && isPrime(k+2)){
n++;
printf("%d,%d\n",k,k+2);
}
k++;
}
}
代码运行截图: