记录编号 364564 评测结果 AAAAAAAAAAWW
题目名称 神秘的素数 最终得分 83
用户昵称 Gravatarsxysxy 是否通过 未通过
代码语言 C++ 运行时间 0.617 s
提交时间 2017-01-17 10:41:20 内存使用 609.96 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
using namespace std;
#define MAXN 200000001
int primes[MAXN], tot;
bool vis[MAXN];
char tmp[14];
//char buf[sizeof(char)*1024*1024*60];
__attribute__((optimize("O3")))
int main()
{
    freopen("p_rime.in", "r", stdin);
    freopen("p_rime.out", "w", stdout);
    fread(tmp, 1, 13, stdin);
    int n;sscanf(tmp, "%d", &n);
    char *buf = (char *)malloc(sizeof(char)*1024*1024*90); //90mb
    register char *ptr = buf;
    for(register int i = 2; i <= n; i++)
    {
        if(!vis[i])
        {
            int k = i;
            register int len = 0;
            while(k)
            {
                int t = k;
                k /= 10;
                tmp[++len] = t-(k<<3)-(k<<1);
            }
            for(; len; len--)*ptr++ = tmp[len]|'0';
            *ptr++ = '\n';
            primes[tot++] = i;
        }
        for(register int j = 0; j < tot; j++)
        {
            int k = primes[j]*i;
            if(k > n)break;
            vis[k] = true;
            if(!(i%primes[j]))break;
        }
    }
    fwrite(buf, 1, ptr-buf, stdout);
    return 0;
}