练习10—素数判断

简介: 练习10—素数判断

题目

编写一个判断素数的函数,在主函数输入一个整数,输出该数是否为素数的信息。

解题步骤

(1)函数思想;
(2)素数定义;
(3)变量定义;
(4)接收用户输入;
(5)判断输出;

Java

import java.util.Scanner;

public class Demo {
    public static boolean isPrime(int input) {
        int n = (int) Math.sqrt(input);
        if (input == 1 || input <= 0)
            System.out.println("error");
        for (int i = 2; i <= n; i++) {
            if (input % i == 0)
                return false;
        }
        return true;
    }

    public static void main(String[] args) {
        int input;
        Scanner user = new Scanner(System.in);
        System.out.print("please enter an integer:");
        input = user.nextInt();
        if (isPrime(input))
            System.out.println(input + " is prime");
        else
            System.out.println(input + " not prime");
    }
}

说明

  1. 调用数学函数sqrt()时,注意不同数据类型之间的转换;
  2. 使用布尔型函数判断是否为素数,注意这时的返回值不再是 0 和 1,而是truefalse

C语言

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int isPrime(int input)
{
    if (input == 1 || input <= 0)
    {
        printf("error");
        exit(0);
    }
    int n = sqrt(input);
    for (int i = 2; i <= n; i++) 
    {
        if (input % i == 0)
        {
            return 1; //若条件满足,能被其他数整除,不是素数
        }
    }
    return 0;
}

int main()
{
    int input, i;
    printf("please enter the data:");
    scanf("%d", &input);
    if (isPrime(input))
        printf("%d is prime", input);
    else
        printf("%d not prime", input);
    return 0;
}

说明

素数定义:

素数又名质数,是指一个大于1的自然数,除了1及其自身外,不能整除其他自然数的数。

判断思想:

  1. 判断一个自然数是否为素数,我们可以这么想:什么样的数不是素数?答案是:负数、0、1以及任何“除1和它本身外还能被其他数整除的数”;
  2. 这样我们的条件就非常明确:排除负数、0、1,利用“不是素数的数都满足小因数<=sqrt(n)<=大因数"这个条件进行判断,其中,n 是待判断的数;
  3. 只需要判断一个数能否被小于或等于sqrt(n) 的数整除即可,降低了算法的时间复杂度。
相关文章
《面向对象分析与设计》一3.1 系统边界
本节书摘来自华章出版社《面向对象分析与设计》一书中的第3章,第3.1节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
3680 0
|
2月前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
1426 10
|
2月前
|
缓存 关系型数据库 数据库
如何优化 PostgreSQL 数据库性能?
如何优化 PostgreSQL 数据库性能?
91 2
|
6月前
|
XML 安全 Java
Spring+SpringMVC+Mybatis入门(一)
一、Spring 1、Spring环境搭建 调整项目环境 修改JDK版本
|
6月前
|
SQL 存储 分布式计算
SparkSQL整合Alluxio实操
SparkSQL整合Alluxio实操
65 0
|
自然语言处理 算法 C语言
正点原子T100智能焊台体验,顺便咱们来说说它的软件菜单、界面切换如何来实现?
正点原子T100智能焊台体验,顺便咱们来说说它的软件菜单、界面切换如何来实现?
311 0
|
搜索推荐 前端开发 JavaScript
企业网站建设的步骤有哪些
企业网站建设的步骤有哪些?企业搭建网站早已不是一件很难的事情,虽然建设网站涉及到代码、服务器、域名申请等等,但是这么专业的事情早就有公司规范化、流程化、简单化来完成了。因此大家只需要找到一家靠谱的第三方企业网站建设公司即可。 下面就给大家讲讲企业和第三方企业网站建设公司合作建设网站的流程及步骤是什么: 1.确认是定制建站,还是自助建站方式。 2.定制建站的话,就直接注册官网账号,和平台官网客服沟通。 自助建站的话,就直接注册官网账号,套网站模板开始搭建网站。 专业的第三方网站建设平台——【浏览器输入9G.FKW.COM】 3.购买一个顶级域名,绑定在做好的网站上,然后上线网站。
234 0
|
消息中间件 SQL druid
|
存储 安全 Java
Java 移除List中的元素,这玩意讲究!
Java 移除List中的元素,这玩意讲究!
689 0
Java 移除List中的元素,这玩意讲究!