检索一定范围内的素数

因为,是上周开始自学C语言的,只学循环,选择,所以难免水平有些低下,欢迎指正。
简要介绍下,素数指的是,在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。以我有限的知识,判断素数的算法,选用循环结构,对于一个确定的整数n,用从2到n-1这些整数去取余,若取余结果都非零,则可以判定该整数为素数。根据判断方法,利用循环结构从2到n-1逐一验证,每一步验证若取余为零则,用prime=1去记录这种结果。反之则用,prime=0去记录,最后对每一步的prime求和,若为求和为零的话,则该整数为素数。截取的源代码如下


```c
//验证每一个n是否为素数的算法
		for (i=2;i<n;i++){
			int p=n%i;
			if(p==0){
		    prime=1;
			}
			else{
			prime=0;	
			}
			s+=prime;
			}
			if(s==0){
				printf("%d是素数\n",n);
			}
			else{

``

因为这个题目来自于浙大C语言程序这门网课,网课里,只是单一的输入,每个数,再进行判断的,未免过有些低效,所以我再选用了用了一次循环,给定一个具体的整数范围(2,x),在这个范围内去检索素数。整个代码如下。


```c
#include <stdio.h>
int main()
{
	//确定寻找素数的范围
	int x=0;
	int i,prime,s,n;
	printf("请输入你要寻找素数的范围\n");
	scanf("%d",&x);
	//从2到X逐一验证是否为素数
	for(n=2;n<x;n++){
		s=0;
		//验证每一个n是否为素数的算法
		for (i=2;i<n;i++){
			int p=n%i;
			if(p==0){
		    prime=1;
			}
			else{
			prime=0;	
			}
			s+=prime;
			}
			if(s==0){
				printf("%d是素数\n",n);
			}
			else{
			}
	} 
	return 0;	
} 

最后在100这个范围内,运行结果为
在这里插入图片描述
最后,总结我作为新手的问题,我遇到的难题一开始源代码如下
在这里插入图片描述
我把初始条件s=0,这个语句放在了第二个循环里,没有考虑到当对于某一个整数,循环结束后,若s不等于0的话,s的值会进入下一个(n+1是否为整数的)循环,这里的s就不是从零开始了,会影响后面选择语句的判断,错误的运行结果为
在这里插入图片描述

每一个问题,他的解决方法并不唯一,我的算法只是一种。因为我所学有限,难免有很多错误,欢迎大家指正!

1、素数的定义
2、C语言程序设计 浙江大学 翁恺

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值