zoukankan      html  css  js  c++  java
  • POJ3292 Semi-prime H-numbers

    定义H数为4n+1,n>=0的数,H素数为H数中只能拆成1*x,x为H数的数,求1-n<=1000000中H素数的个数。

    筛法。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 #include<algorithm>
     5 #include<iostream>
     6 using namespace std;
     7 
     8 int n;
     9 #define maxn 1000011
    10 int prime[maxn],lp=0;bool notp[maxn];
    11 void makeprime()
    12 {
    13     memset(notp,0,sizeof(notp));
    14     notp[1]=0;
    15     for (int i=5;i<=n;i+=4)
    16         if (!notp[i])
    17         {
    18             prime[++lp]=i;
    19             for (int j=i*5;j<=n;j+=(i<<2)) notp[j]=1;
    20         }
    21 }
    22 bool isans[maxn];int ans[maxn];
    23 int main()
    24 {
    25     n=1000001;
    26     makeprime();
    27     memset(isans,0,sizeof(isans));
    28     for (int i=1;i<=lp;i++)
    29         for (int j=1;prime[j]*prime[i]<=n;j++)
    30             isans[prime[i]*prime[j]]=1;
    31     ans[0]=0;
    32     for (int i=1;i<=n;i++) ans[i]=ans[i-1]+isans[i];
    33     while (scanf("%d",&n) && n)
    34         printf("%d %d
    ",n,ans[n]);
    35     return 0;
    36 }
    View Code
  • 相关阅读:
    Linq&Lumbda
    PS颜色模式
    WPF绑定方式
    明三杰刘健
    齐有鲍叔,郑有子皮
    朱厚照
    管子&小白
    时间
    人外有人之神箭手养繇基篇
    楚共王
  • 原文地址:https://www.cnblogs.com/Blue233333/p/7309262.html
Copyright © 2011-2022 走看看