zoukankan      html  css  js  c++  java
  • hdu 杭电 1262 寻找素数对 果枫

    题意:找一对最接近的素数(素数对可以相等)其和等于给出的偶数。

    解法:prim[10001]数组中不是素数标记为1,从prim[]下标为n/2开始搜.

    注意:素数对可以相等。

    ac代码:

    View Code
    #include<iostream>
    using namespace std;
    
    const int m=10000+1;
    bool prim[m];
    int main()
    {
        int i,j;
        memset(prim,0,sizeof(prim));
        prim[0]=prim[1]=1;
        for(i=2;i<=m/2;i++)//预处理,执行后不是素数的被标记为1
        {
            for(j=i*i;j<=m;j+=i)
                prim[j]=1;
        }
    
        int n;
        while(cin>>n)
        {
            i=n/2;
            j=i;
    
            if(prim[i]==0)
            {
                cout<<i<<" "<<j<<endl;
                continue;
            }
            else
            {
                i--;
                while(prim[i]!=0)
                    i--;
                j++;
                while(prim[j]!=0)
                    j++;
            }
    
            while(i+j!=n)
            {
                if(i+j>n)
                {
                    i--;
                    while(prim[i]!=0)
                        i--;
                }
                else
                {
                    j++;
                    while(prim[j]!=0)
                        j++;
                }
            }
            cout<<i<<" "<<j<<endl;
        }
        return 0;
    }
  • 相关阅读:
    HTML_表单
    jabc_DAO
    JDBC 加钱减钱
    JDBC 连接池
    JDBC
    视图序列索引
    【Java8】 lambda 特性讲解
    IntelliJ IDEA 常用快捷键
    Java IO 之 装饰模式
    Java IO 讲解
  • 原文地址:https://www.cnblogs.com/zgfailmr/p/2665890.html
Copyright © 2011-2022 走看看