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

相关推荐
剪一朵云爱着19 分钟前
PAT 1065 A+B and C (64bit)
算法·pat考试
闪电麦坤9524 分钟前
数据结构:在二叉搜索树中插入元素(Insert in a BST)
数据结构·二叉树··二叉搜索树
闪电麦坤9528 分钟前
数据结构:用链式队列实现层序遍历 (Level-order Traversal)
数据结构··遍历
喜欢吃燃面40 分钟前
C++算法竞赛:位运算
开发语言·c++·学习·算法
项目申报小狂人1 小时前
算法应用上新!自适应更新策略差分进化算法求解球形多飞行器路径规划问题,附完整MATLAB代码
开发语言·算法·matlab
PAK向日葵7 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
地平线开发者9 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者10 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
星星火柴93611 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法