您的位置:首页 > 编程语言 > C语言/C++

c语言内存分配学习之查找质数

2016-11-15 11:06 190 查看
#include "stdio.h"

#include "stdlib.h"

#include "stdbool.h"

int main(void){

  unsigned long long *pPrimes = NULL;

  unsigned long long trial =0 ;

  bool found =false;

  int total = 0;

  int count = 0;

  int i =1;

  int j =0;

  printf("输入查找多少个质数: ");

  scanf("%d",&total);

  total = total<4?4:total;

     pPrimes = (unsigned long long*)malloc(total*sizeof(unsigned long long));

  if(!pPrimes){

        printf("没有足够的内存使用!!!");

        return 1;

  }

  *pPrimes = 2ULL;

  *(pPrimes+1) = 3ULL;

  *(pPrimes+2) =5ULL;

  count = 3;

  trial = 5ULL;

      while(count<total){

            trial +=2ULL;

            for(i;i<count;++i){

                if(!(found=(trial%*(pPrimes+i)))){

                    break;

                }

            }

            if(found)

                *(pPrimes +count++)=trial;

      }

      for(j;j<total;++j){

        printf("%12llu",*(pPrimes+j));

        if(!((j+1)%5)){

            printf("\n");

        }

      }
      printf("\n");

     //释放占用的内存

      free(pPrimes);

      pPrimes =NULL;

      return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: