1007 素数对猜想 (20 分)——C语言实现
一、题目
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
二、解析
作者认为这道题可以先把满足题目要求的全部素数收集保存在一个数组当中,然后再依次判断是否为素数对并计数。
为了整体的条理性,可以封装两个函数来实现上述两个功能。
三、代码实现
#include <stdio.h>
int IsPrimayNum(int TmpNum)
{
int i = 0;
for (i = 2; i <= sqrt(TmpNum); i++)
{
if (TmpNum % i == 0)
{
return 0;
}
}
return 1;
}
int FindDoublePrimayNum(int Num)
{
int i = 0;
int Cnt = 0;
for (i = 2; i <= Num && i+2 <= Num; i++)
{
if (IsPrimayNum(i) && IsPrimayNum(i+2))
{
Cnt++;
}
}
return Cnt;
}
int main(int argc, const char *argv[])
{
int N = 0;
int Ret = 0;
scanf("%d", &N);
Ret = FindDoublePrimayNum(N);
printf("%d\n", Ret);
return 0;
}
四、总结
对于复杂题目,可以把题目要求分解为小功能封装为一个个函数,然后在主函数中依次调用,来实现整体的大功能