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

相关推荐
李白同学16 分钟前
【C语言】结构体内存对齐问题
c语言·开发语言
楼台的春风1 小时前
【MCU驱动开发概述】
c语言·驱动开发·单片机·嵌入式硬件·mcu·自动驾驶·嵌入式
大数据追光猿2 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!2 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉2 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode
南宫生2 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
柠石榴2 小时前
【练习】【回溯No.1】力扣 77. 组合
c++·算法·leetcode·回溯
Leuanghing2 小时前
【Leetcode】11. 盛最多水的容器
python·算法·leetcode
qy发大财2 小时前
加油站(力扣134)
算法·leetcode·职场和发展
王老师青少年编程2 小时前
【GESP C++八级考试考点详细解读】
数据结构·c++·算法·gesp·csp·信奥赛