打印100~200之间的素数

素数也称为质数,只能被1和它本身整除,以下方法效率依次递增,都是用的试除法:

方法一(效率最低):

#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		//判断是否为素数
		//用 2 ~ i-1 之间的数去试除
		int flag = 1;//设置标签
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount = %d\n", count);
	return 0;
}
/*
* 打印结果:
* 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
*count = 21
*/

方法二:

#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 101; i <= 200; i+=2)
	{
		//判断是否为素数
		//从101开始,用奇数试除
		int flag = 1;//设置标签
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount = %d\n", count);
	return 0;
}

方法三:

#include<stdio.h>
int main()
{
	int count = 0;
	for (int i = 100; i <= 200; i++)
	{
		int flag = 1;
		for (int j = 2; j <= (i/2); j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n%d ", count);
	return 0;
}

方法四:

//i = m*n
//m和n中至少由一个数字是 小于等于 开平方i的
//如果i不是素数,一定能在2~开平方i之间 找到一个i的因子
//16 = 2*8
//16 = 4*4
//
//库函数sqrt,是用来开平方的
//math.h
//
#include<stdio.h>
#include<math.h>
int main()
{
	
	int count = 0;
	for (int i = 100; i <= 200; i++)
	{
		int flag = 1;
		for (int j = 2; j <= sqrt(i); j++)//此种开平方的办法效率最高
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n%d ", count);
	return 0;
}

这里推荐一篇博客,《素数求解的N种境界》,链接:
https://so.csdn.net/so/search?spm=1000.2115.3001.4498&q=%E3%80%8A%E7%B4%A0%E6%95%B0%E6%B1%82%E8%A7%A3%E7%9A%84N%E7%A7%8D%E5%A2%83%E7%95%8C%E3%80%8B&t=&u=

大家可以照着这个题目多搜索相关的内容来看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值