第一个问题就是素数求解。
我懒,我po一下别人的解题。
(44条消息) C语言中判断一个数是否为质数(素数)的函数_qq_40370563的博客-CSDN博客_判断素数的函数
其他倒也没什么,这题也比较简单。但是我发现,数组一定要设置的足够大。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int prime_number(int num)
{
int i,k;
if(num>=2)
{
k=sqrt(num);
for(i=2;i<=k;i++)
{
if(num%i==0)
break;
}
if(i>=k+1)
return 1;
else
return 0;
}
else
return 0;
}
int main() {
int N;
scanf("%d", &N);
int SUSHU[10000];
//判断N中存在的素数
SUSHU[0] = 1; SUSHU[1] = 2;
int j = 2;
int flag=1;//判断是否是素数的标志
for(int i = 3; i <= N; i++) {
flag=prime_number(i);
if (flag==1) {
SUSHU[j] = i;
j++;
}
}
int number=0;
int P[10000];
int n = 1;
while (n<=j) {
P[n - 1] = SUSHU[n] - SUSHU[n - 1];
if (P[n - 1] == 2) number++;
n++;
}
printf("%d", number);
return 0;
}