目录
[C 语言实现](#C 语言实现)
[Python 实现](#Python 实现)
[Java 实现](#Java 实现)
[Js 实现](#Js 实现)
**题目:**判断一个数字是否为质数。
**程序分析:**质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。
C 语言实现
objectivec
#include <stdio.h>
int is_prime(int num) {
if (num <= 1) {
return 0; // 0 和 1 不是素数
}
for (int i = 2; i * i <= num; i++) { // 只需检查到 sqrt(num)
if (num % i == 0) {
return 0; // 找到因数,返回 0 表示不是素数
}
}
return 1; // 没有找到因数,返回 1 表示是素数
}
int main() {
int number;
printf("请输入一个正整数:");
scanf("%d", &number);
if (is_prime(number)) {
printf("%d 是素数\n", number);
} else {
printf("%d 不是素数\n", number);
}
return 0; // 正常结束程序
}
-
函数
is_prime(int num)
:- 检查输入的数字是否小于或等于 1,如果是,则返回 0(表示不是素数)。
- 使用一个循环从 2 开始检查到
sqrt(num)
(即i * i <= num
),如果找到任何因数,则返回 0。 - 如果没有找到因数,则返回 1(表示是素数)。
-
主函数
main()
:- 提示用户输入一个正整数。
- 调用
is_prime()
函数判断输入的数字是否为素数,并输出相应的结果。
Python 实现
python
def is_prime(num):
if num <= 1:
return False # 0 和 1 不是素数
for i in range(2, int(num**0.5) + 1): # 只需检查到 sqrt(num)
if num % i == 0:
return False # 找到因数,返回 False 表示不是素数
return True # 没有找到因数,返回 True 表示是素数
# 主程序
if __name__ == "__main__":
number = int(input("请输入一个正整数:"))
if is_prime(number):
print(f"{number} 是素数")
else:
print(f"{number} 不是素数")
-
函数
is_prime(num)
:- 检查输入的数字是否小于或等于 1,如果是,则返回
False
(表示不是素数)。 - 使用一个循环从 2 开始检查到
sqrt(num)
(即int(num**0.5) + 1
),如果找到任何因数,则返回False
。 - 如果没有找到因数,则返回
True
(表示是素数)。
- 检查输入的数字是否小于或等于 1,如果是,则返回
-
主程序:
- 使用
input()
函数获取用户输入,并将其转换为整数。 - 调用
is_prime()
函数判断输入的数字是否为素数,并输出相应的结果。
- 使用
Java 实现
java
import java.util.Scanner;
public class PrimeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int number = scanner.nextInt();
if (isPrime(number)) {
System.out.println(number + " 是素数");
} else {
System.out.println(number + " 不是素数");
}
scanner.close(); // 关闭扫描器
}
public static boolean isPrime(int num) {
if (num <= 1) {
return false; // 0 和 1 不是素数
}
for (int i = 2; i * i <= num; i++) { // 只需检查到 sqrt(num)
if (num % i == 0) {
return false; // 找到因数,返回 false 表示不是素数
}
}
return true; // 没有找到因数,返回 true 表示是素数
}
}
- 导入 Scanner 类:用于获取用户输入。
- 主类和主方法 :定义
PrimeChecker
类和main
方法。 - 用户输入 :使用
Scanner
获取用户输入的数字。 - 判断素数 :调用
isPrime()
方法判断输入的数字是否为素数。 - 输出结果:根据判断结果输出相应的信息。
- 关闭扫描器 :在程序结束时关闭
Scanner
对象以释放资源。
isPrime
方法:
- 检查输入的数字是否小于或等于 1,如果是,则返回
false
(表示不是素数)。 - 使用一个循环从 2 开始检查到
sqrt(num)
(即i * i <= num
),如果找到任何因数,则返回false
。 - 如果没有找到因数,则返回
true
(表示是素数)。
Js 实现
javascript
function isPrime(num) {
if (num <= 1) {
return false; // 0 和 1 不是素数
}
for (let i = 2; i * i <= num; i++) { // 只需检查到 sqrt(num)
if (num % i === 0) {
return false; // 找到因数,返回 false 表示不是素数
}
}
return true; // 没有找到因数,返回 true 表示是素数
}
// 主程序
const input = prompt("请输入一个正整数:");
const number = parseInt(input, 10);
if (isPrime(number)) {
console.log(`${number} 是素数`);
} else {
console.log(`${number} 不是素数`);
}
-
函数
isPrime(num)
:- 检查输入的数字是否小于或等于 1,如果是,则返回
false
(表示不是素数)。 - 使用一个循环从 2 开始检查到
sqrt(num)
(即i * i <= num
),如果找到任何因数,则返回false
。 - 如果没有找到因数,则返回
true
(表示是素数)。
- 检查输入的数字是否小于或等于 1,如果是,则返回
-
主程序:
- 使用
prompt()
函数获取用户输入,并将其转换为整数。 - 调用
isPrime()
函数判断输入的数字是否为素数,并输出相应的结果。
- 使用
注意:
- 在浏览器中运行时,
prompt()
会弹出一个输入框,用户可以在其中输入数字。 - 在 Node.js 环境中,你可以使用
readline
模块来获取用户输入,或者直接在代码中指定一个数字进行测试。