C 练习实例12

C 语言经典100例 C 语言经典100例

题目:判断 101 到 200 之间的素数。

程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

实例 1

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> int main() { int i,j; int count=0; for (i=101; i<=200; i++) { for (j=2; j<i; j++) { // 如果 j 能被 i 整除再跳出循环 if (i%j==0) break; } // 判断循环是否提前跳出,如果 j<i 说明在 2~j 之间,i 有可整除的数 if (j>=i) { count++; printf("%d ",i); // 换行,用 count 计数,每五个数换行 if (count % 5 == 0) printf("\n"); } } return 0; }

以上实例输出结果为:

101 103 107 109 113 
127 131 137 139 149 
151 157 163 167 173 
179 181 191 193 197 
199

实例

#include <stdio.h>
#include <stdbool.h>

// 函数:判断一个数是否为素数
bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;

    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) return false;
    }

    return true;
}

int main() {
    printf("素数在 101 到 200 之间的列表:\n");

    for (int i = 101; i <= 200; i++) {
        if (isPrime(i)) {
            printf("%d ", i);
        }
    }

    printf("\n");
    return 0;
}

代码分析:

  1. isPrime 函数:判断一个数是否为素数。它首先排除一些明显的非素数,然后使用 6k ± 1 形式来检查剩余的可能因子,从而提高效率。
  2. main 函数:遍历 101 到 200 之间的所有整数,并使用 isPrime 函数检查每个数是否为素数。如果是,就打印出来。

C 语言经典100例 C 语言经典100例