zoukankan      html  css  js  c++  java
  • 枚举孪生素数对

    题目:http://www.tsinsen.com/A1034

    答案:

    #include <iostream>
    #include <math.h>
    using namespace std;
    bool fun(int i)
    {
        bool flag1=false;
        bool flag2=false;
        for(int u=2; u<=sqrt(i); u++)
        {
            if(i%u==0)
                flag1=true;
        }
        if(i<2)
            flag1=true;
        for(int u=2; u<=sqrt(i+2); u++)
            if((i+2)%u==0)
                flag2=true;
        //         cout<<flag1<<flag2<<endl;
        if(!flag1&&!flag2)
            return true;
        else
            return false;
    }
    int main()
    {
        int m;
        int n;
        bool flag=false;
        cin>>m>>n;
        for(int i=m; i<=n; i++)
        {
            if(i+2<=n)
            {
                if(fun(i))
                {
                    flag=true;
                    cout<<i<<" "<<i+2<<endl;
                }
    
            }
    
        }
        if(flag==false)
            cout<<"-1";
        return 0;
    }

    所用算法是最笨的枚举整除(2,sqrt(i))判断质数。注意2,是质数,1不是。

    并且题目要求包含端点,另外如果枚举整除(2,n)会超时。

    一开始第一个测试点总是不能ac,后来发现没有仔细看题。

    主要就是要注意端点以及端点以外,题目讨论区中有几个问第一个测试点的,我正好也错了,就写出来了。可以枚举,本题本来没有什么难度,如果时间限制的更小,就必须搜一下新算法了。

    本博客专注于错误锦集,在作死的边缘试探
  • 相关阅读:
    ArcGIS进行视域分析及地形图制作
    ArcGIS进行容积率计算
    ArcGIS对进行数据拓扑修改
    如何打开软键盘
    China一词的由来
    名侦探柯南剧集数据统计分析
    常用QQ快捷键
    福利|GISer需知网站
    中国程序员最容易读错的单词
    截取数组
  • 原文地址:https://www.cnblogs.com/SweetBeens/p/6327383.html
Copyright © 2011-2022 走看看