素数判定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)

猜你喜欢

转载自blog.csdn.net/pythonstrat/article/details/112647951