听说素数的求法有很多,但是这是我想出的最简单方法了

由于求素数运用的试除法

先说一下素数的定义:除了“1”和它本身就不能再分成其余两个数相乘(应该是这样,嘿嘿)

我捋一下思路:

如果题目说让找出100~200内的素数

按最原始的思路,宝贝们可能就想到了循环,多简单定义两个变量,让它们递增相除循环个2筛选一下,看看能不能被除尽,计算机计算多快啊!但是宝贝们,我们写程序就是想找到做简单的方法!

再给大家一个思路

如果它不是素数,呢么这个数是否就是可以分成两个数相乘

比如,9=3*3;8=2*4;

但是大家想想如果这样的话呢,是不是这个数拆成的两个数中,必定有一个数小于等于这个数的开平方(不信你可以好好想想),呢样我们就可以少一半的循环了。

有的宝贝突然恍然大悟,哈哈哈呢我们再想想是不是还可以让它更简单

没想到的话,也没关系!我说一下,100~200之间的偶数一定不是素数,对吧!我们把它们剔除不就可以了!嘿嘿嘿

让我们看看怎么执行这个程序吧!

//思路
//判断 i 是不是素数
//试除法 
#include<stdio.h>
#include<math.h>//由于引用了sqrt开平方数学符号,所以引用头文件 
int main()
{
	int i;//定义一个要判断的数 
	int j;	 
	int count=0;
	for(i=101;i<=200;i+=2)//剔除偶数
	{
		j=0;
		for(j=2;j<=sqrt(i);j++)//让它小于i的开平方
		{
			if(i%j==0)
			{
				break;
			}
		}
		if(j>sqrt(i))
		{
			count++;
			printf("%d\n",i);
		}
	}
	printf("count=%d\n",count);
	return 0;
}

如果明白,就关注我吧!嘿嘿

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值