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

相关推荐
SmartRadio10 分钟前
MK8000(UWB射频芯片)与DW1000的协议适配
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·dw1000
guygg8811 分钟前
基于捷联惯导与多普勒计程仪组合导航的MATLAB算法实现
开发语言·算法·matlab
fengfuyao98512 分钟前
遗传算法与粒子群算法求解非线性函数最大值问题
算法
LeetCode天天刷26 分钟前
【软件认证】比特翻转【滑动窗口】
算法
源代码•宸28 分钟前
Leetcode—1123. 最深叶节点的最近公共祖先【中等】
经验分享·算法·leetcode·职场和发展·golang·dfs
s砚山s32 分钟前
代码随想录刷题——二叉树篇(十三)
数据结构·算法
alphaTao36 分钟前
LeetCode 每日一题 2026/1/5-2026/1/11
算法·leetcode
山上三树37 分钟前
详细介绍 C 语言中的 #define 宏定义
c语言·开发语言·算法
ulias2121 小时前
AVL树的实现
开发语言·数据结构·c++·windows
麻雀1231 小时前
win7中编译qemu-system-arm,仿真arm设备
c语言·eclipse