函数判断素数:实现一个函数,判断一个数是不是素数,利用上面实现的函数打印100到200之间的素数。

素数

只能被 1 和 它本身 整除的数就叫素数。

算法设计

很简单,如果n=1,返回0;(1既不是素数也不是合数)
i从2开始自增,设置一个循环,用n%i,如果n%i==0,返回0,(这是找反例)
循环结束也没有找到反例,当前就是素数。

函数求解

注意主函数是如何调用isPrime()函数并让他进行打印的
直接上代码!

int isPrime(int n)
{
	int i = 0;
	if (n == 1)
		return 0;
	for (i = 2; i <= n; ++i)
	{
		if (n%i == 0)
		{
			return 0;
		}
	}
	return 1;
}
void main()
{
	int j;
	for (j = 100; j <= 200; ++j)
	{
		int ret = isPrime(j);
		if (ret == 1)
			printf("%d", j);
	}
}

暴力穷举

//写一个代码:打印100~200之间的素数
//素数:只能被1和它本身整除的数字
void main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		int j = 0;
		for (j = 2; j < i; j++)
		{
			if (i%j == 0)
				break;
		}
		if (j == i)
		{
			printf("%d\n",i);
			count++;          //count为计数器,记录有多少个素数
		}
	}
	printf("100~200之间有%d个素数\n",count);
}
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 实现一个函数判断一个是不是素数素数是指只能被1和本身整除的正整。因此,判断一个是不是素数,只需要从2到这个的平方根之间的所有整去除,如果都不能整除,则该素数。 代码如下: ```python def is_prime(num): if num < 2: return False for i in range(2, int(num ** .5) + 1): if num % i == : return False return True ``` 利用上面实现函数打印100200之间素数: ```python for i in range(100, 201): if is_prime(i): print(i) ``` 输出结果为: ``` 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 ``` ### 回答2: 判断一个是不是素数,需要知道什么是素数素数指在大于1的自然中,除了1和本身,没有其他因。比如2、3、5、7等就是素数,而4、6、8等就不是素数实现一个判断素数函数可以采用如下的方法: 1. 如果小于2,返回False 2. 如果大于2并且能被2整除,返回False 3. 从3开始,如果能被3到该的平方根之间的奇整除,返回False 4. 其他情况返回True 代码实现如下: ```python import math def is_prime(n): if n < 2: return False elif n == 2: return True elif n % 2 == 0: return False else: for i in range(3, int(math.sqrt(n))+1, 2): if n % i == 0: return False return True ``` 利用上面实现函数打印100200之间素数可以采用如下的方法: ```python for i in range(100, 201): if is_prime(i): print(i, end=" ") ``` 上述代码使用了range函数生成100200之间,并且使用is_prime函数判断每个是否为素数,是的话打印出来。这样就可以得到100200之间素数。 ### 回答3: 判断一个是不是素数,可以采用试除法。即对于一个n,从2到n-1依次去除n,若都无法整除,则n是素数。 以下是实现一个判断素数函数Python代码: ```python def is_prime(num): if num < 2: #小于2的都不是素数 return False for i in range(2, int(num ** 0.5) + 1): if num % i == 0: return False return True ``` 注解:本函数中,使用了Python的平方根函数sqrt(),代码中使用的是它的等价形式,即对进行了转换。sqrt(num)可以换成num ** 0.5。同时,循环的上限可以限制在num的平方根范围内,大大减少了判断的时间。 接着,利用is_prime()函数,我们可以打印100200之间素数。Python代码如下: ```python start = 100 end = 200 for num in range(start, end + 1): if is_prime(num): print(num, end=" ") ``` 注解:本代码中,使用了Python的 range(start, end) 函数,其中起始值为 start,终止值为 end - 1。同时,在每个素数后面加了一个空格,便于观察。 总之,判断素数是一种常用的问题,也是编程入门的必考题之一。学会了判断素数的方法并进行实际编码操作,会对编程入门有很大的帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值