1007 素数对猜想

 

 

其实这个题很容易写出来

但是问题是一直runtime

其中想尝试动态数组时也出现了一个错误

 

 至于runtime

改进如下

1.对于素数的判定方式

 

sqrt()函数需要导入

#include <math.h>

2在进行循环时就直接开始判断

不用再来一个循环

 

 代码如下

#include <iostream>
#include <string>
#include <math.h>

using namespace std;

int main()
{
    int N,flag,k=0,t=0;
    int s[100000];
    cin>>N;
    for(int i=2; i<=N; i++)
    {
        flag=1;
        for(int j=2; j<=(int)sqrt(i); j++)
        {
            if(i%j==0)
                flag=0;
        }
        if(flag==1)
        {
            s[k++]=i;
            if(k>=2&&(s[k-1]-s[k-2])==2)
            {
                t++;
            }
        }
    }
    cout<<t;
    return 0;
}

 

 

posted @ 2019-12-03 21:35  tumiya  阅读(211)  评论(0)    收藏  举报