• 打印素数表orz


    记笔记记笔记

    #include <stdio.h>
    #include <math.h>
    char table[10000003] = {0};
    void print_table(int h)
    {
     int m = sqrt(h + 0.5);
     for (int i = 4;i <= h;i += 2)
      table[i] = 1;//1表示该数为合数
     for (int i = 3;i <= m;i += 2)
     {
      if (table[i] == 0)
      {
       for (int j = i*i;j <= h;j += i)//上面截图从j=i+i开始,事实上没必要,因为     k*i(k=2,3,4.....i-1)   已在之前被和谐了
        table[j] = 1;
      }
     }
    }

    //下面的代码应该将ISPRIME[]全部初始化为1.

    #include <stdio.h>
    #include <string.h>
    #define MAXN 1000003
    #define MAXL 10000003
    int prime[MAXN];
    char check[MAXL];

    int main()
    {
     int n, count;
     while (~scanf("%d", &n))
     {
      memset(check, 0, sizeof(check));
      count = 0;
      for (int i = 2;i <= n;i++)
      {
       if (!check[i])
        prime[count++] = i;
       for (int j = 0;j < count;j++)
       {
        if (i*prime[j] > MAXL)break;
        check[i*prime[j]] = 1;
        if ((i%prime[j]) == 0)break;
       }
      }

      printf("ok ");
      for (int i = 2;i <= 100;i++)
       if (!check[i])printf("%d", i);
     }
     
     return 0;
    }

  • 相关阅读:
    jdbc在项目中的应用
    第五次作业-springmvc对表单的获取
    jquery的文档处理(部分)
    测试报告怎么写合理
    WebService的简单应用
    hdu--5078--orz
    hdu--5074--dp
    hdu--5108--数论
    hdu--5072--容斥原理
    hdu--3853--概率dp
  • 原文地址:https://www.cnblogs.com/schsb/p/7828469.html
Copyright © 2020-2023  润新知