用C语言编写一个函数程序其功能是判定一个数是否为素数若是素数则函数返回值为1若不是素数则函数返回值为0。用此函数判定找出100以内最大的3个素数
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int count = 0;
int max_primes[3] = {0};
for (int i = 2; i < 100; i++) {
if (is_prime(i)) {
count++;
if (i > max_primes[0]) {
max_primes[2] = max_primes[1];
max_primes[1] = max_primes[0];
max_primes[0] = i;
} else if (i > max_primes[1]) {
max_primes[2] = max_primes[1];
max_primes[1] = i;
} else if (i > max_primes[2]) {
max_primes[2] = i;
}
}
}
printf("100以内最大的3个素数分别为:%d、%d、%d\n", max_primes[0], max_primes[1], max_primes[2]);
return 0;
}
解释如下:
首先,我们定义一个 is_prime 函数,用来判断一个数是否为素数。如果这个数小于 2,那么它肯定不是素数,直接返回 0。否则,我们从 2 开始循环到这个数的一半,如果这个数能够被某个数整除,那么它不是素数,返回 0。如果循环结束都没有返回 0,那么这个数就是素数,返回 1。
接下来,在 main 函数中,我们定义一个计数器 count 和一个数组 max_primes,用来保存最大的 3 个素数。然后,我们从 2 循环到 99,对于每个数,如果它是素数,那么我们将计数器加 1,并和当前最大的 3 个素数进行比较,如果比它们中的任意一个数都大,那么它就是新的最大素数,将原来的最大素数往后移一位。最后,输出最大的 3 个素数即可。
运行结果如下:
100以内最大的3个素数分别为:97、89、83
``
原文地址: https://www.cveoy.top/t/topic/eppD 著作权归作者所有。请勿转载和采集!