题目链接:https://www.nowcoder.com/pat/6/problem/4079
思路分析:
1、如何判断一个素数!挺重要的,目前我对这种方法最熟悉,/*如果有自己的方法,此处可略过。5:小于2不是素数(0.1都不是素数),6:特判2;7:去掉2的倍数一定不是素数;8--12:从3开始对有可能的因子依次循环如果那个数能够被因子整除(n%i==0) 那个数n就一定不是素数*/
2、将10000以内出现的所有素数全都保存在数组中,
3、按题所需,找到数组的对应的下标,输入的第n个数=数组下标-1关系(如输入5,按照表格第五个素数是11,对应数组的下标为4)
2 | 3 | 5 | 7 | 11 | 13 | 17 | 19 | 21 | 23 |
a[0] | a[1] | a[2] | a[3] | a[4] | a[5] | a[6] | a[7] | a[8] | a[9] |
时隔多年,我将这篇题解补全,只因我菜~
#include<iostream>
using namespace std;
bool is_prime(int n)
{
if(n < 2) return false;
for(int i=2;i<=n/i;i++)
if(n%i==0) return false;
return true;
}
int main()
{
int count=0;
int n; scanf("%d",&n);
for(int i=5;i<=n;i++)
if(is_prime(i-2) && is_prime(i)) count ++;
cout << count;
return 0;
}