判断一个数字是否为质数。-多语言

目录

[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; // 正常结束程序
}
  1. 函数 is_prime(int num)

    • 检查输入的数字是否小于或等于 1,如果是,则返回 0(表示不是素数)。
    • 使用一个循环从 2 开始检查到 sqrt(num)(即 i * i <= num),如果找到任何因数,则返回 0。
    • 如果没有找到因数,则返回 1(表示是素数)。
  2. 主函数 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} 不是素数")
  1. 函数 is_prime(num)

    • 检查输入的数字是否小于或等于 1,如果是,则返回 False(表示不是素数)。
    • 使用一个循环从 2 开始检查到 sqrt(num)(即 int(num**0.5) + 1),如果找到任何因数,则返回 False
    • 如果没有找到因数,则返回 True(表示是素数)。
  2. 主程序

    • 使用 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 表示是素数
    }
}
  1. 导入 Scanner 类:用于获取用户输入。
  2. 主类和主方法 :定义 PrimeChecker 类和 main 方法。
  3. 用户输入 :使用 Scanner 获取用户输入的数字。
  4. 判断素数 :调用 isPrime() 方法判断输入的数字是否为素数。
  5. 输出结果:根据判断结果输出相应的信息。
  6. 关闭扫描器 :在程序结束时关闭 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} 不是素数`);
}
  1. 函数 isPrime(num)

    • 检查输入的数字是否小于或等于 1,如果是,则返回 false(表示不是素数)。
    • 使用一个循环从 2 开始检查到 sqrt(num)(即 i * i <= num),如果找到任何因数,则返回 false
    • 如果没有找到因数,则返回 true(表示是素数)。
  2. 主程序

    • 使用 prompt() 函数获取用户输入,并将其转换为整数。
    • 调用 isPrime() 函数判断输入的数字是否为素数,并输出相应的结果。

注意:

  • 在浏览器中运行时,prompt() 会弹出一个输入框,用户可以在其中输入数字。
  • 在 Node.js 环境中,你可以使用 readline 模块来获取用户输入,或者直接在代码中指定一个数字进行测试。
相关推荐
我是无敌小恐龙9 分钟前
Java基础入门Day10 | Object类、包装类、大数/日期类、冒泡排序与Arrays工具类 超详细总结
java·开发语言·数据结构·算法·贪心算法·排序算法·动态规划
极客先躯13 分钟前
高级java每日一道面试题-2025年12月07日-实战篇[Dockerj]-Docker daemon 的配置文件在哪里?常用的配置项有哪些?
java·docker·配置文件的实际位置·配置文件的格式规则·常用配置项全景与分类·配置如何生效·daemon 配置折射架构思维
云烟成雨TD16 分钟前
Spring AI Alibaba 1.x 系列【49】状态图运行时引擎:CompiledGraph 源码解析
java·人工智能·spring
隔壁小红馆22 分钟前
隐藏odoo特有
python·odoo17·odoo18
ADI_OP22 分钟前
用SigmaStudio+软件来开发ADSP-21565
算法·音视频·adi dsp中文资料·adi音频dsp·adi dsp开发教程
yuanyuan2o225 分钟前
从最小项目开始的 CMake 教程
c语言·开发语言·arm开发·c++·makefile·make·cmake
lifewange26 分钟前
pytest 找不到文件?直接在 pytest.ini 配置根目录 + 路径(最简单方案)
开发语言·python·pytest
城事漫游Molly28 分钟前
研究设计核心 Toolkit:从“知道方法”到“真正会设计”
大数据·人工智能·算法·ai写作·论文笔记
yuanpan38 分钟前
Python 桌面 GUI 入门开发:从 tkinter 窗口到简易记事本
开发语言·python
川石课堂软件测试38 分钟前
软件测试|常见面试题整理
数据库·python·jmeter·mysql·appium·postman·prometheus