当前位置: 首页 > 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();}
}

相关文章:

  • 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深度测评:助力高效开发【探索化学奇妙世界】网站
  • 网站内容的编辑和更新怎么做的/上海怎么做seo推广
  • 网站建设的实验结论/好用的视频播放器app
  • 生产许可证查询官网/河南靠谱seo地址
  • php网站的登陆注册怎末做的/软文媒体
  • 做企业网站软件/2021年度关键词有哪些
  • 网站的后台管理员系统建设教程/建网站不花钱免费建站