新手讲解C语言求素数的例题

素数(又称质数)的概念: 只有1和它本身两个因数的自然数
当我们用c语言去实现素数算法的代码时,重点是去考虑其变量以及循环条件,掌握这两点就可以做素数的例题啦~

例 1
从键盘输入一个数,判断其是否为素数
🔺分析:想到概念,任何素数只能被1和它本身所除,那么从1到它本身不能出现其他因数,否则跳出循环
🔺代码实现如下

#include <stdio.h>
int main()
{
	int m, flag =1 ;        //定义flag变量标志判断是否为素数 
	
	printf ( "Please input a num:\n" );
	scanf ( "%d", &m );
	
	for ( int i = 2; i < m; i++)   //循环从2开始,是因为i=1时对任何数都无意义 
	{
		if ( m % i == 0 )
		{
			flag = 0;
			break;
		}
		else
		{
			flag = 1;
		}
	} 
	
	if ( flag )
	{
		printf ( "%d是素数", m );
	}
	else
	{
		printf( "%d不是素数", m );
	}
	return 0;
}

例 2
求1-100以内自然数的所有素数
🔺分析:数是从1-100,那就在上面代码的基础上做一点点修改,相当从1-100去索引哪些数是素数,也是一个循环判断素数的经典例题
🔺代码结果如下

#include<stdio.h>
int main()
{
	int i;
	int j;
	int flag = 1;                           //用于标志素数的判断
	for(i = 2; i <= 100; i++)
	{
		for(j = 2; j <= i / 2; j++)         //i/2剔除一部分不必要的计算
		{
			if(i % j ==0)
			{
				flag = 0;
				break;
			}
		}
		if(flag == 1)
		{
			printf("%4d",i);
		}
		flag = 1;
	}
	return 0;
}

因为本身自己也是刚学完这些,有利于刚接触c语言的萌新看哦,还希望大家多多指出我的不足,谢谢啦,第一次发文字,后续还会出一些c语言的经典例题,希望大家多多关注哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值