当前位置: 首页 > news >正文

判断素数两种方法【自用】

普通方法:

如果多次调用,时间复杂度高,有可能导致运行不通过

static boolean isPrime(int x) {if(x<=1) return false;for(int i=2;i<=Math.sqrt(x);i++) {if(x%i==0) {return false;}}return true;}

埃氏筛选法:

用空间换时间,只需要预处理一次,每次判断进行对应下标查找真假即可,时间复杂度大大减少

import java.util.Arrays;
import java.util.Scanner;public class 埃氏筛选素数 {//埃氏筛选static boolean[] sieve(int max) {boolean[] isPrime=new boolean[max+1];Arrays.fill(isPrime, true);isPrime[0]=isPrime[1]=false;for(int i=2;i*i<=max;i++) {for(int j=i*i;j<=max;j+=i) {isPrime[j]=false;}}return isPrime;}//普通方法static boolean isPrime(int x) {if(x<=1) return false;for(int i=2;i<=Math.sqrt(x);i++) {if(x%i==0) {return false;}}return true;}public static void main(String[] args) {Scanner sc=new Scanner(System.in);int max=100;boolean[] isPrime=sieve(max);for(int i=2;i<=max;i++) {if(isPrime[i]) {System.out.println(i);}}sc.close();}
}

http://www.dtcms.com/a/242328.html

相关文章:

  • Linux之nginx部署网站
  • JavaScript 函数详解:从基础概念到实战应用
  • nginx配置中有无‘‘/’’的区别
  • antd-vue - - - - - a-table排序
  • 端到端自动驾驶研究:通过强化学习与世界模型的协同作用向VLA范式演进
  • Android OpenSL ES 音频播放完整实现指南
  • MySQL:InnoDB架构(内存架构篇)
  • 384_C++_unit是4字节大小,能存储32位(bit)bool操作,[7][48]这里用于计划表的时间节点内,二维数组中每一位代表一种AI功能的开关状态
  • 维度建模是什么意思?如何实现维度建模?
  • CPU Idle 状态与中断的关系
  • LocalDate类使用
  • 卷积神经网络参数量计算
  • Linux 阻塞非阻塞
  • Prometheus + Grafana 监控 RabbitMQ 实践指南
  • 【解决串口数据丢包问题】下位机环形缓冲区+上位机串口生产者-消费者不定长接收(基于keil5和Labview)
  • 【单片机期末】接口及应用
  • 中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
  • Linux简单的操作
  • 【51单片机】5. 矩阵键盘与矩阵键盘密码锁Demo
  • 驭码CodeRider 2.0深度测评:助力高效开发【探索化学奇妙世界】网站
  • K8s简述
  • 探秘鸿蒙 HarmonyOS NEXT:鸿蒙定时器,简单倒计时的场景应用
  • Vue3 watch使用
  • OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档
  • CVE-2024-23897源码分析与漏洞复现(Jenkins 任意文件读取)
  • HTTP状态码大全:含义、产生原因及排查指南
  • 实战案例-FPGA如何实现JESD204B可重复的延迟
  • 实战案例-FPGA如何实现JESD204B确定性延迟
  • 【已解决】python的kafka-python包连接kafka报认证失败
  • Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】