[c语言]求100以内的素数

这篇具有很好参考价值的文章主要介绍了[c语言]求100以内的素数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(一)、

int i,j;
	//int word=0;//word=0是质数
	for(i=2;i<=100;i++){
		int word=0;
		for(j=2;j<=sqrt(i);j++)
			if(i%j==0){
				word=1; //不是质数,,即是偶数
				break;
			}
		if(word==0)
			printf("%d ",i);
	}
	

关于整除算法:

要判断某数是不是质数,不必验证某数m是否被2~m-1的某一个整数整除,只需验证是否被2~sqrt(m)的某一个整数去除就可以了。若只要m被2~sqrt(m)的某个整数整除了,那么它就不是质数。例16能被2,4,8整除,根号16=4,2为2~4之间的一个整数

(二)、

int i,j,k;
	for(i=2;i<=100;i++){
		k=sqrt(i);
		for(j=2;j<=k;j++)
			if(i%j==0)	break; //善用break!即一旦满足if语句,所在循环结束
		if(j>k)	printf("%d ",i); //100以内的某个数i当第二个for循环结束后仍没有被2~sqrt(i)之间的某个数整除,所以它是质数
	}
	

(三)、筛选法文章来源地址https://www.toymoban.com/news/detail-738654.html

int a[101],i,j;//设a[101]是因为最后算i的下一个元素j时会达到a[101],为防止溢出
	for(i=1;i<=100;i++){  //给a[101]赋值
		a[i]=i;
	}
	a[1]=0;
	for(i=2;i<=sqrt(100);i++)
		for(j=i+1;j<=100;j++)
			if(a[i]!=0&&a[j]!=0) //是为了省去判断已被判断为非质数的数。
				                 //例当i=4,j=8时,a[8]被挖去。后续计算时就不必在判断a[8]是否为质数
			   if(a[j]%a[i]==0)
				a[j]=0;
		
	for(i=2;i<=100;i++) 
		if(a[i]!=0)
			printf("%d ",a[i]);

到了这里,关于[c语言]求100以内的素数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言:鉴于计算10亿以内训练模型记录for循环的加速

    笔者主力机是MBA M1芯片(8+256) ,某个下午巩固循环突然思考到个问题,小循环很快就能run出来,中循环还勉勉强强,稍微上点强度就运行的很慢。虽然是CPU占用100%,8颗核心好像是偷着懒跑的,但是丢给我那台 4核心8线程 黑苹果,是跑满的,说明ARM在多线程的时候,有点东

    2024年02月06日
    浏览(44)
  • C语言实现求n以内最大的k个素数c

    以下是C语言实现求n以内最大的k个素数的代码: 在该代码中,我们先定义了一个判断素数的函数 is_prime ,然后在 find_k_primes 函数中查找最大的k个素数。在查找的过程中,我们使用了一个计数器 count ,记录已经找到的素数个数,以及一个变量 max_prime ,记录已经找到的最大素

    2024年02月04日
    浏览(42)
  • 【C语言编程之旅 6】刷题篇-for循环

    思路: 两个循环进行控制 外层循环控制打印多少行 内部循环控制每行打印多少个表达式以及表达式内容, 比较简单,具体参考代码 思路: 采用循环的方式输入一个数组 使用max标记数组中的最大值,采用循环的方式依次获取数组中的每个元素,与max进行比较,如果arr[i]大于

    2024年01月21日
    浏览(44)
  • Java输入任意正整数,判断其以内所有的素数(1000以内的所有素数)

    * 思路1: * 从约数的角度出发 * 5的约数为1,5,和为6 * 13的约数为1,13,和为14 * 17的约数为1,17,和为18 * 18的约数为1,2,3,6,9,18,,和为39 * 所以如果约数的和==i+1;则为素数,否则为偶数 * * 思路2: * 判断约数个数是否大约2 * 2的约数为1,2   约数个数为2 * 11的约数为1,11   约数个

    2023年04月08日
    浏览(45)
  • C语言--输出1-100以内同时能被3和5整除的数

     首先我们要有1-100的数字.  如何表示同时能被3和5同时整除呢? 如果这个数i,i%3==0i%5==0,那么这个数就可以同时被3和5整除  最后输出即可  完整代码: 创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。 欢迎各位帅哥美女点赞👍评论⭐收藏⭐

    2024年02月03日
    浏览(36)
  • 使用筛选法求出 n 以内的素数

    输入描述: 多组输入,每行输入一个正整数(不大于100)。 输出描述: 针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔, 第二行,输出数组中2之后被清0 的个数。每行输出后换行 筛选法求解过程为:将2~n之间的正整数放在数组内存储,

    2024年02月13日
    浏览(77)
  • C语言判断一个数是否是质数的几种常用方法(求100-1000以内的所有质数)

    要用代码判断一个数是否是质数,首先我们需要知道什么什么数称之为质数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。 以下有三种方法判定质数: 通过从2到n-1每个数均整除

    2024年02月08日
    浏览(94)
  • 求1000以内所有素数并输出的几种方法

    今天咱们来点不一样的,来看一下这样的一道题目,他要求我们把1-1000的素数全部找到并且输出 那我们先要了解什么是素数, 所谓素数,就是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 。而合数则恰巧与素数相反,是指在大于1的整数中除了能被1和本

    2024年02月06日
    浏览(57)
  • C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

    使用 试除法 打印100~200之间 的 素数 。                素数(质数) : 一个数 只能被写成 一和本身的积 。 如: 7 只能写成 1*7 ,那就是素数(质数)了。                       =========================================================================                         (一)

    2024年02月08日
    浏览(74)
  • python123输出N以内的所有素数&哥德巴赫猜想&扑克牌游戏

    描述 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬ 编程找出N(即小

    2023年04月18日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包