首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一道c语言编程题,第46题,用筛选法求素数

用筛选法求1到999的素数的

#include

int main() {

  int prime[1000] = ; // 初始化素数数组

  int i, j;

  for (i = 2; i

      if (prime[i] == 0) { // 如果当前数是素数

          for (j = i * 2; j

              prime[j] = 1; // 将当前数的倍数标记为合数

          }

      }

  }

  printf("1到999的素数:\n");

  for (i = 2; i

      if (prime[i] == 0) {

          printf("%d ", i); // 输出素数

      }

  }

  printf("\n");

  return 0;

}

筛选法的思路是从2开始,将所有2的倍数标记为合数,然后再找到下一个未标记的数(即3),将所有3的倍数标记为合数,以此类推,直到找到所有小于等于999的素数。在代码中,使用一个长度为1000的数组prime来标记每个数是否是素数。如果prime[i]为0,则表示i是素数;如果prime[i]为1,则表示i是合数。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230328A097QV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券