zoukankan      html  css  js  c++  java
  • 埃拉托色尼的筛子

    列出n以内的质子数

     1 #include <iostream>
     2 #include<math.h>
     3 using namespace std;
     4 
     5 int* Sieve(int n, int &length)
     6 {
     7     int *A,*B;
     8     int p=0,j=0,i=0,k=0,q=0;
     9     
    10     A = new int[n];
    11     for(p=2 ; p<n; p++)
    12         A[p] = p;
    13     
    14     /*关键步骤,把p的倍数的数消掉为0*/
    15     for(p=2; p<=sqrt(n); p++)
    16     {
    17         if(A[p]!=0)
    18             j= p*p;
    19         while(j<=n)
    20         {
    21             A[j]=0;
    22             j=j+p;
    23         }
    24     }
    25 
    26     /*获取B数列长度*/
    27     for(q=2;q<n;q++)
    28     {
    29         if(A[q]!=0)
    30             i++;
    31     }
    32 
    33     B = new int[i];
    34 
    35     /*将A的非0值赋予B*/
    36     for(p=2; p<n; p++)
    37     {
    38         if(A[p]!=0)
    39         {
    40             B[k]=A[p];
    41             k++;
    42         }
    43     }
    44     length = i;
    45     return B;
    46 }
    47 
    48 int main(int argc, char* argv[])
    49 {
    50     int length =0;
    51     int *R = Sieve(100,length);
    52     for(int i=0;i<length;i++)
    53         cout << R[i] << "	";
    54     cout << endl;
    55 
    56     return 0;
    57 }
  • 相关阅读:
    Mybatis 接口绑定
    Spring AOP
    Spring 基础使用
    Java 类的生命周期
    Mybatis 测试延迟加载
    Mybatis
    eclipse 常用jar包总结
    Web 过滤器参数设置问题
    Web 单元测试
    zabbix监控-自定义监控与报警(二)
  • 原文地址:https://www.cnblogs.com/xxdfly/p/4443725.html
Copyright © 2011-2022 走看看