cpp
#include <stdio.h>
int prime(int n){
if(n<2){
return 0;
}
for(int i=2;i*i<=n;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
void find_primes(int a){
for(int i=2;i<a;i++){
if(prime(i)){
printf("%d ",i);
}
}
}
int main(){
int b;
scanf("%d",&b);
find_primes(b);
return 0;
}
这段 C 语言代码的主要目的是实现一个简单的程序,用于找出用户输入的整数之前(不包括该整数本身)的所有素数,并将这些素数依次输出。
一、函数 prime
函数prime
用于判断一个给定的整数n
是否为素数。首先,它进行了一个边界条件的判断,如果n
小于 2,因为素数定义是大于 1 且除了 1 和它自身外不能被其他自然数整除的数,所以小于 2 的数肯定不是素数,直接返回 0。然后通过一个for
循环,从 2 开始到i * i <= n
为止进行遍历。这里之所以只需要遍历到i * i <= n
,是因为如果一个数n
不是素数,那么它一定可以分解成两个因数,其中至少有一个因数是小于等于sqrt(n)
的,而i * i <= n
就相当于i <= sqrt(n)
。在循环中,如果n
能被i
整除,那就说明n
不是素数,返回 0;如果整个循环都没有找到能整除n
的数,就说明n
是素数,返回 1。
二、函数 find_primes
函数find_primes
接受一个整数参数a
,它的功能是在 2 到a - 1
这个范围内,逐个调用prime
函数来判断每个数是否为素数。如果是素数,就通过printf
函数将其输出,输出格式是每个素数后面跟一个空格。
三、主函数 main
在主函数main
中,首先定义了一个整数变量b
,然后通过scanf
函数从用户那里获取一个整数输入,并将其存储到b
中。接着调用find_primes
函数,传入用户输入的整数b
,让程序找出并输出小于b
的所有素数。最后,主函数返回 0,表示程序正常结束。