• 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;
    }
  • 相关阅读:
    shell 案例
    linux 软链接和硬链接区别
    mac安装使用nginx
    Leetcode SQL_#176_第二高的薪水
    南邮ctf web题记录(上)
    CTFHub Web技能树
    XCTF web 新手练习区
    诊断工具--arthas使用教程
    prometheus--监控工具
    无状态状态机--cola stateMachine
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934795.html
Copyright © 2020-2023  润新知