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

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值