C语言入门案例练习2——找素数

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,表示程序正常结束。

相关推荐
地平线开发者17 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮17 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者18 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考18 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx21 小时前
CART决策树基本原理
算法·机器学习
Wect1 天前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱1 天前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
Gorway1 天前
解析残差网络 (ResNet)
算法
拖拉斯旋风1 天前
LeetCode 经典算法题解析:优先队列与广度优先搜索的巧妙应用
算法
Wect1 天前
LeetCode 207. 课程表:两种解法(BFS+DFS)详细解析
前端·算法·typescript