素数判定C语言与python

题目:

  • 对任意一个大于3的数,判断它是否是素数

分析:

  • (1) 素数:除了1和本身,不能被任何其他数整除
  • (2) 假设数字是 n, 只用检测是否被 2 ~ n/2 整除即可(甚至是只需要判断到 2~根号n)。

C语言解题

  • 第四步写起来还是比较乱的,要判断定 3,4,5 这几个小的数字。仅个人思路写法
  • 并且要注意类型转换 (int)n/2
#include<stdio.h>

// 素数判定

int main()
{
	// 1.获取n的值
	int n, i;
	printf("请输入n的值:\n");
	scanf("%d", &n);
	// 2. 创建 作为初始除数i=2
	for(i=2;i <= n/2; i++)
	{
		// 3. 判断 2~ n/2 的是能否整除,能整除就得出 不是素数,结束循环
		if (n%i == 0)
		{
			printf("%d, 不是素数\n", n);
			break;
		}
	}
	// 4. 当i>= n/2时,表示循环全部结束,输出n是素数(这里 i > n/2 的情况是 n==3,i=1,且 n 不能为4,因为是四,两个printf语句都将输出) 
	if (i >= (int)n/2 && n != 4)
		printf("%d, 是素数\n", n);
	return 0;
}
  • 补充:实际上不需要类型转换
    在这里插入图片描述

python解题

  • python for 语句后面固有的 else语法, 是省去了C语言最后面的 if判断,简洁了一点
n = int(input("请输入要判定的数字:"))
for i in range(2, int(n/2) + 1):
    if n%i == 0:
        print("%d, 不是素数"% n)
        break
# 此else 与for对齐
else:
    print("%d, 是素数"% n)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值