zoukankan      html  css  js  c++  java
  • lightoj1259 【素数预处理】

    题意:
    输出有多少对满足条件的(a,b)
    both a and b are prime;
    a+b=n
    a<=b;
    思路:
    一开始想的就是打表一个素数数组,然后还去二分。。mdzz。。直接判断一下n-A[I]是不是素数和是不是>=A[I]就好了。
    都能标记何必二分…= =、我比较蠢。。
    然后是内存爆了。。
    后来标记的需要开bool,而且那个记录素数的数组最好开小;
    以后int a[1e7]要么就不开,要么就开bool类型。。。谨慎。。
    PS:亲测,int a[1e7]爆内存,32778kb= =

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N=1e7+10;
    bool isPrime[N];
    int sum[N/10];
    int num;
    
    void init()
    {
        memset(isPrime,0,sizeof(isPrime));
        for(int i=2;i<=10000000;i++)
        {
            if(isPrime[i]) continue;
            for(int j=i+i;j<=10000000;j+=i)
            {
                isPrime[j]=1;
            }
        }
        num=0;
        for(int i=2;i<=10000000;i++)
        {
            if(!isPrime[i])
                sum[++num]=i;
        }
    }
    
    int main()
    {
        int n;
        init();
        int T,cas=1;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            int ans=0;
            for(int i=1;i<=num;i++)
            {
                if(!isPrime[n-sum[i]]&&(n-sum[i])>=sum[i])
                {
                    ans++;
                }
                if(sum[i]>=n/2)
                    break;
            }
            printf("Case %d: %d
    ",cas++,ans);
        }
        return 0;
    }
  • 相关阅读:
    Linux-Oracle 安装配置步骤
    lombok 安装
    request (请求对象)
    response (响应对象)
    ServletContext (上下文对象)
    JavaWeb数据库配置
    HttpServlet
    博客园代码字体大小
    博客园背景美化
    用PHP实现反向代理服务器
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934795.html
Copyright © 2011-2022 走看看