C语言基础:如何判断素数(质数)与合数

C语言基础:如何判断素数(质数)与合数

1. 素数与合数

  • 素数又叫质数(prime number),有无限个。素数定义为在大于1的自然数中,除了1和它本身两个正因数以外不再有其他因数。如:2,3,5,7,11等皆为素数。
  • 比1大而且不是素数的数称为合数(composite number)。如:4,6,8,9,10等皆为合数。
  • 数字0和1既非素数也非合数。

2. 正因数与公约数

  • 正因数,也称为正约数,指的是一个整数中大于0的因数。如:24的正因数有1,2,3,4,6,8,12,24。
  • 任何整数的最小正因数都是1。
  • 公因数,也称为公约数。它是指能同时整除几个整数的数。如:24与16的公约数有1,2,4,8,以及它们的最大公约数为8。
  • 对任意的若干个正整数,1总是它们的公因数。

注:最大公约数请见此文章C语言基础:求两个数的最大公约数与最小公倍数

3. 代码示例

  • 例1: 输出一个数判断是否为素数。
int main(int argc, char* argv[])
{
	int x;
	printf("please input a number!\n");
	scanf("%d",&x);
	if(x<=1){
		printf("This is not heshu nor sushu\n");//数字0和1既非素数也非合数。
	}
	else{
		for(int i=2;i<x;i++){
			if(x%i == 0)break;//试除法
		}
		if(i<x){
			printf("This is heshu\n");//合数,非素数
		}
		else{
			printf("This is sushu\n");//素数
		}
	}
	return 0;
	
}

测试用例:
97
运行结果:
This is sushu

  • 例2: 输出数字1到100之间的素数。
void main(){
	for(int x=2;x<=100;x++){//数字1既非素数也非合数。
		for(int i=2;i<x;i++)
			if(x%i==0)break;
		if(i>=x)printf("%d ",x);
	}
	printf("\n");
}

运行结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

——>以上内容是关于如何用C语言如何判断素数(质数)与合数,希望对初学者或再次学习者有所帮助,基础打扎实,不怕风吹雨打! 如果以上内容有错误或者内容不全,望大家提出!我也会继续写好每一篇博文!

待续未完
——文优

欢迎观看和提问!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文优

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值