PTA刷题Basic篇——1007.素数对猜想——Day(4)

问题描述

在这里插入图片描述找出相邻素数相差2的素数对数。

题目分析

题目比较简单,我们只要找出一个区间的素数。可以先写一判断素数的函数,然后边输入边判断,然后将素数加入到我们提前声明的数组中。遍历进行判断。
还有一种简便做法,就是我们提前声明一个数组,每输入一个数字就判断它是不是素数,如果是素数,就取素数数组中的最后一个元素和它做差,如果差等于2,就把count+1(count是素数对数目)
然后再将这个刚输入的素数加入数组。我稍微写的详细了一点,就没用这种方法。

代码

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
int main()
{
    int n;
    cin>>n;//输入上限
    vector<int>prim;//素数集合
    for(int i = 2;i <= n;i++)
    {
        int flag = 0;//标志素数和合数
        for(int j = 2;j <= sqrt(i);j++)
        {
            if(i % j == 0)
            {
                flag = 1;
                break;
            }
        }
        if(flag == 0)
            prim.push_back(i);
    }
    int count = 0;//素数对
    for(int i = 0;i < prim.size() - 1;i++)
    {
        //cout<<prim[i]<<endl;
        if(prim[i+1] - prim[i] == 2)
            count++;
        else
            continue;
    }
    cout<<count;
    return 0;
}

总结

答题用时7min
Q7——finish√

发布了60 篇原创文章 · 获赞 2 · 访问量 1074

猜你喜欢

转载自blog.csdn.net/weixin_44755413/article/details/105452301