题目:
分析:
- (1) 素数:除了1和本身,不能被任何其他数整除
- (2) 假设数字是 n, 只用检测是否被 2 ~ n/2 整除即可(甚至是只需要判断到 2~根号n)。
C语言解题
- 第四步写起来还是比较乱的,要判断定 3,4,5 这几个小的数字。仅个人思路写法
- 并且要注意类型转换 (int)n/2
#include<stdio.h>
int main()
{
int n, i;
printf("请输入n的值:\n");
scanf("%d", &n);
for(i=2;i <= n/2; i++)
{
if (n%i == 0)
{
printf("%d, 不是素数\n", n);
break;
}
}
if (i >= (int)n/2 && n != 4)
printf("%d, 是素数\n", n);
return 0;
}
- 补充:实际上不需要类型转换
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/139ce2f3e4d485f68a94c4faa16c62f7.png)
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:
print("%d, 是素数"% n)