zoukankan      html  css  js  c++  java
  • poj3282

    定义一个有4x+1组成的无限集合x>0&x∈Z

    素数   x 不能有x = y*z,y,z都是素数

    合数 x 有x = y*z y|z中某个数是素数

    simi数,只能由两个素数构成。

    打表

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    using namespace std;
    const int maxa =1000005;
    int a[maxa];   //prime 0, composites 1;
    int b[maxa];   //simi
    int ans[maxa];
    int main(){
        for(int i = 1; 4*i+1 < maxa; i++){
            if(a[4*i+1] == 0){//printf("%d ",4*i+1);
                for(int k = 1; (k*4+1)*(i*4+1) < maxa; k ++){
                    a[(k*4+1)*(i*4+1)] = 1;
                }
            }
        }
        for(int i = 5;i < maxa; i+= 4){
            if(a[i] == 0){
                for(int k = 5; k*i < maxa; k+=4){
                    if(a[k] == 0){
                        b[i*k] = 1;
                    }
                }
            }
        }
        for(int i = 1; i < maxa; i++){
            ans[i] = ans[i-1]+b[i];
        }
        int n;
        while(scanf("%d", &n) , n){
            printf("%d %d
    ", n, ans[n]);
        }
    }
    View Code
  • 相关阅读:
    jstack 命令
    jmap 命令
    jinfo 命令
    jstat 命令
    jps 命令
    java虚拟机内存区域详解
    chgrp 命令
    chown 命令
    java自定义注解
    Mysql中key 、primary key 、unique key 与index区别
  • 原文地址:https://www.cnblogs.com/icodefive/p/4266916.html
Copyright © 2011-2022 走看看