题目
思路
求出1~N的所有素数,将其存入b数组,再统计差是2的相邻素数对的个数,打印即可
#include<stdio.h>
#include<stdlib.h>
int judge(int i)
{
if (i == 0 || i == 1)
return 0;
for (int j = 2; j * j <= i; j++)
if (i % j == 0)
return 0;
return 1;
}
int main(void)
{
int n;
int i, j, count;
scanf("%d", &n);
int* b = (int*)malloc((n + 1) * sizeof(int));
for (i = 0, j = 1; i < n + 1; i++)//此处b数组从1开始,保持第i个素数存在b[i]中
if (judge(i))
b[j++] = i;
for (count = 0, i = 2; i < j; i++)
if (b[i] - b[i - 1] == 2)
count++;
printf("%d", count);
}