用筛选法求1到999的素数的
#include
int main() {
int prime[1000] = {0}; // 初始化素数数组
int i, j;
for (i = 2; i <= 999; i++) {
if (prime[i] == 0) { // 如果当前数是素数
for (j = i * 2; j <= 999; j += i) {
prime[j] = 1; // 将当前数的倍数标记为合数
printf("1到999的素数:\n");
for (i = 2; i <= 999; 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是合数。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.