素数问题
能帮忙写一个“输入一个数,判断其是否为素数”的程序吗? 素数是指大于1的自然数,只能被1和它本身整除。以下是判断素数的Python程序:
# 判断素数的程序
num = int(input("请输入一个正整数:"))
if num > 1:
# 检查从2到平方根是否有因数
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
print(f"{num} 不是素数")
break
else:
print(f"{num} 是素数")
else:
print(f"{num} 不是素数")
程序说明:
- 获取用户输入并转换为整数。
- 如果输入小于等于1,则直接输出不是素数。
- 对于大于1的数,循环从2到该数的平方根(取整),检查是否能整除。
- 如果能整除,则不是素数,跳出循环;否则,循环正常结束,是素数。
注意:这里使用了 for-else 结构,当循环没有被 break 中断时,执行 else 块。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2026-3-26 22:58
素数是指大于1的自然数,只能被1和它本身整除。
以下是判断素数的Python程序:
忘了讲了,我需要C程序的代码,谢谢~~ 但求过程001 发表于 2026-03-26 23:14
FishC 发表于 2026-3-26 22:58
素数是指大于1的自然 ...
以下是判断素数的C语言程序:
#include <stdio.h>
int main() {
int num, i, isPrime = 1;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num <= 1) {
isPrime = 0;
} else {
for (i = 2; i * i <= num; i++) {
if (num % i == 0) {
isPrime = 0;
break;
}
}
}
if (isPrime) {
printf("%d 是素数\n", num);
} else {
printf("%d 不是素数\n", num);
}
return 0;
}
程序说明:
1. 使用 isPrime 变量记录是否为素数,初始值为1(表示是素数)
2. 首先判断输入的数是否小于等于1,直接标记为非素数
3. 对于大于1的数,循环检查从2到该数的平方根之间是否有因数
- 使用 i * i <= num 代替平方根计算,效率更高
- 如果能整除,则不是素数,标记 isPrime = 0 并跳出循环
4. 最后根据 isPrime 的值输出结果
注意:素数(质数)是指大于1的自然数,只能被1和它本身整除的数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 def is_prime(x):
if x < 2:
return False
if x == 2:
return True
if x % 2 == 0:
return False
m = int(x ** 0.5) + 1
for i in range(3, m, 2):
if x % i == 0:
return False
return True
n = int(input())
if is_prime(n):
print(f"{n} 是素数")
else:
print(f"{n} 不是素数")
页:
[1]