若两素数之差为 2,则称两素数为双胞胎数。求出 [2, 300] 之内:
(1)所有素数并保存到文件 prime.txt 种
(2)有多少对双胞胎数
(3)最大的一对双胞胎数
#include <stdio.h>
int main(){
int isPrime(int a);
FILE *fp;
int i;
int count = 0;
int prime[50][2];
if( (fp = fopen("D:\\prime.txt", "w")) == NULL){
printf("文件打开失败");
return 0;
}
for(i = 2; i <= 298; i++)
{
if( isPrime(i) && isPrime(i+2)){
printf("%d %d\n", i, i + 2);
fprintf(fp,"%d %d\n", i, i + 2);
prime[count][0] = i;
prime[count][1] = i+2;
count++;
}
}
printf("共有%d对,最大的一对为%d,%d", count, prime[count-1][0], prime[count-1][1]);
fclose(fp);
}
int isPrime(int a){
int i;
for( i = 2; i <= a/2; i++){
if( a % i == 0)
return 0;
}
return 1;
}
————————————————————————————————
Success