【C语言编程100题】-3-打印素数

题目描述:打印100-200之间的素数

解题思路:

1,明确素数定义:素数是能被1和它本身整除的正整数。

方法一:试除法

1)从2到n-1,逐个尝试是否能够整除n,若可以,n不是素数;若不可以,n不是素数。

2)当n为偶数时,n一定不是素数,因为偶数不仅可以被1和它本身整除,也至少可以被2整除,那

么在找素数时,我们可以直接跳过偶数。

#include <stdio.h>
int main() {
	int i,j;
	for(i=100; i<=200; i++)
	 {
		//定义变量,假设是素数,变量值为1
		int flag=1;
		for(j=2; j<i; j++) 
		{
			//判断是否存在一个数可以整除当前数
			if(i%j==0) 
			{
				//不是素数
				flag=0;
				break;
			}
		}
		//若是素数就打印
		if(flag == 1) 
		{
			//注意:printf后有空格,这样可以使得打印结果之间有空格,看起来更加明确且美观
			printf("%d ",i);
		}
	}
	return 0;
}

运行结果:

方法二:(优化版,由方法一中可以跳过偶数,在查找素数直接判断奇数是否是素数)

#include <stdio.h>
int main() {
	int i,j;
//从101开始判断,判断结束后i在上一次的基础上加2,直接越过了偶数,节约判断时间
	for(i=101; i<=200; i+=2)
	 {
		//定义变量,假设是素数,变量值为1
		int flag=1;
		for(j=2; j<i; j++) 
		{
			//判断是否存在一个数可以整除当前数
			if(i%j==0) 
			{
				//不是素数
				flag=0;
				break;
			}
		}
		//若是素数就打印
		if(flag == 1) 
		{
			//注意:printf后有空格,这样可以使得打印结果之间有空格,看起来更加明确且美观
			printf("%d ",i);
		}
	}
	return 0;
}

运行结果:

方法三:

#include <stdio.h>
#include <math.h> 
int main() 
{
	int i,j;
	for(i=101; i<=200; i+=2)
	 {
		//定义变量,假设是素数,变量值为1
		int flag=1;
		for(j=2; j<sqrt(i); j++) 
		{
			//判断是否存在一个数可以整除当前数
			if(i%j==0) 
			{
				//不是素数
				flag=0;
				break;
			}
		}
		//若是素数就打印
		if(flag == 1) 
		{
			//注意:printf后有空格,这样可以使得打印结果之间有空格,看起来更加明确且美观
			printf("%d ",i);
		}
	}
	return 0;
}

运行结果:

以上运行结果均是在方法一和方法二和方法三这三种代码下实现的,编译环境为Dev-c++。

注意:sqrt()函数用于计算一个非负实数平方根。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值