⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f0621.cpp

📁 it is a usefull thing
💻 CPP
字号:
//==================================
// f0621.cpp
// 求素数个数低级编程版
//==================================
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
//----------------------------------
int count(unsigned int a){
  int sum=0;
  for(unsigned int x=a; x; x>>=1)
    if(x & 1)  sum++;
  return sum;
}//---------------------------------
void sieve(unsigned int* p){
  for(int i=2; i<=10000; ++i)
    if(p[i/32]&(1<<i%32))
      for(int j=i*i; j<100000000; j+=i)
        p[j/32] &= ~(1<<j%32);
}//---------------------------------
int main(){
  clock_t start=clock();
  unsigned int* p = (unsigned int*)malloc(12500000);
  if(!p){
    printf("no enough memory.\n");
    return 1;
  }
  memset(p,255,12500000);
  sieve(p);
  int num=-2;
  for(int i=0; i<12500000/4; ++i)
    num += count(p[i]);
  free(p);
  printf("%d,%7.3f\n",num,(clock()-start)/CLK_TCK);
}//=================================

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -