總結一下找素數的三種方法

目錄

一試除法

二埃氏篩

三線性篩(歐拉篩)


一試除法

思想:就是判斷某個數x是不是素數,就判斷從2開始到小于=根號x的范圍內有沒有能夠取余不等于0的,這個說明當前值就是x的一個因子,所以不是素數。

代碼:

import java.util.Scanner;public class Javava {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("求0~300之間的素數:");pan1();//試除法sc.close();}private static void pan1() {int total = 0;for (int i = 2; i <= 300; i++) {int j;for( j = 2; j*j <= i; j++) {if(i%j==0){break;}}if(j*j>i){System.out.println(i+" ");total ++;}}System.out.println("共有"+total+"個");}
}

二埃氏篩

思想:從小到大開始判斷素數,當前x是素數,那么x*x 及以后得x*x+n*x都不在會是素數了,直接排除即可,使用一個boolean型的輔助數組即可

代碼:

import java.util.Scanner;public class Javava {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("求0~300之間的素數:");pan2();//埃氏篩sc.close();}private static void pan2() {int total = 0;boolean [] arr = new boolean[300];for (int i = 2; i < arr.length; i++) {if(arr[i]==false){for(int j=i*i;j<arr.length;j+=i){arr[j]=true;}}}System.out.println("素數有");for (int i = 2; i < arr.length; i++) {if(arr[i]==false){System.out.print(i+" ");total++;}}System.out.println();System.out.println("共有"+total+"個");}
}

三線性篩(歐拉篩)

思想:因為第二個埃氏篩有重復標記的,也是浪費性能,線性篩是對埃氏篩的進一步優化

代碼:

ArrayList

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;public class Javava {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("求0~300之間的素數:");pan3();//歐拉篩sc.close();}private static void pan3() {int total = 0;boolean [] arr = new boolean[301];ArrayList<Integer> list = new ArrayList<>();for (int i = 2; i < arr.length; i++) {if(arr[i]==false)list.add(i);for(int j=0;j<list.size()&&i*list.get(j)<=300;j++){arr[i*list.get(j)]=true;if(i%list.get(j)==0){break;}}}System.out.println("素數有");for(int val:list){System.out.print(val+" ");}System.out.println();System.out.println("共有"+list.size()+"個");}
}

二:純粹數組

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;public class Javava {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("求0~300之間的素數:");pan3();//歐拉篩sc.close();}private static void pan3() {int total = 0;boolean [] arr = new boolean[301];
//        ArrayList<Integer> list = new ArrayList<>();int [] list = new int[301];int idx = 0;for (int i = 2; i < arr.length; i++) {if(arr[i]==false)list[idx++] = i;for(int j=0;j<=idx&&i*list[j]<=300;j++){arr[i*list[j]]=true;if(i%list[j]==0){break;}}}System.out.println("素數有");for(int val:list){System.out.print(val+" ");}System.out.println();System.out.println("共有"+(idx)+"個");}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91105.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91105.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91105.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于Yolov8車輛檢測及圖像處理系統【有代碼】

0 引言 隨著城市化進程的加速和機動車保有量的快速增長,交通管理、智能監控和自動駕駛等領域對車輛目標檢測技術的需求日益增長。車輛目標檢測是計算機視覺領域的一個重要研究方向,其目標是從圖像或視頻序列中準確識別和定位車輛,為后續的車輛跟蹤、行為分析和交通流量統計…

MySQL密碼管理器“mysql_config_editor“

目錄 核心能力 常用命令速查 為什么更安全&#xff1f; 典型場景 mysql_config_editor 是 MySQL 官方自帶的一款命令行小工具&#xff0c;作用一句話&#xff1a;把賬號、密碼、主機、端口等連接信息加密存起來&#xff0c;下次連接時只敲一個名字即可&#xff0c;不用再寫…

Kubernetes高級調度01

目錄 第一章&#xff1a;初始化容器&#xff08;InitContainer&#xff09;—— 應用啟動前的 “準備軍” 1.1 InitContainer 的基本概念與核心特性 1.2 InitContainer 與普通容器的關鍵區別 1.3 InitContainer 的實戰場景與示例解析 1.3.1 示例 1&#xff1a;延遲啟動 —…

LSV負載均衡

什么是訪問壓力&#xff1f;--負載 兩個客戶同時訪問一個服務器&#xff0c;會導致服務器崩潰調度---Cluster集群&#xff08;為了解決一個特定問題&#xff0c;多臺服務器組合使用形成的一個系統&#xff09;LSV 1、集群Cluster LB&#xff1a;負載均衡&#xff0c;有多個主機…

復習筆記 38

緒論 其實沒有一種安穩快樂&#xff0c;永遠也不差 專題 2 知識點 繼續學數學強化吧&#xff1f;可以。還有概率論要學。還有高數后半部分的數一專項要學。還有政治要學。要學的內容確實還是挺多的啊。加油。下載了一個閱讀的軟件&#xff0c;可以做一做真題的閱讀理解。政治英…

GaussDB like 的用法

1 like 作用在 where 子句中使用 like 運算符來搜索列中的指定模式。 有兩個通配符與 like 運算符一起使用&#xff1a;&#xff05; - 百分號表示零個&#xff0c;一個或多個字符 _ - 下劃線表示單個字符注&#xff1a;也同時支持正則表達式。2 like 語法select column1, colu…

單例模式:確保全局唯一實例

單例模式確保一個類只有一個實例&#xff0c;并提供全局訪問點。適用于需要全局唯一對象的場景&#xff08;如配置管理器、數據庫連接池&#xff09;。代碼示例&#xff1a;import java.util.stream.IntStream;public class ConfigManager {public static void main(String[] a…

深入理解 QSettings:Qt 中的應用程序配置管理

在開發 Qt 應用程序時&#xff0c;管理應用程序的配置信息是一個常見的需求。無論是保存用戶的偏好設置、窗口大小&#xff0c;還是應用程序的運行時配置&#xff0c;都需要一種高效且靈活的方式來存儲和檢索這些信息。Qt 提供了一個強大的工具——QSettings&#xff0c;它能夠…

基于SpringBoot+Vue的體育館預約管理系統(支付寶沙盒支付、騰訊地圖API、協同過濾算法、可視化配置、可視化預約)

“ &#x1f388;系統亮點&#xff1a;支付寶沙盒支付、騰訊地圖API、協同過濾算法、可視化配置、可視化預約”01系統開發工具與環境搭建—前后端分離架構 項目架構&#xff1a;B/S架構 運行環境&#xff1a;win10/win11、jdk17前端&#xff1a; 技術&#xff1a;框架Vue.js&am…

<script>標簽對HTML文件解析過程的影響以及async和defer屬性的應用

在前端開發中&#xff0c;<script> 標簽的 async 和 defer 屬性會顯著影響 JavaScript 腳本的加載和執行時機。下面結合示例代碼&#xff0c;詳細解析它們之間的區別&#xff1a; 1. 默認情況&#xff08;無 async/defer&#xff09; <script src"script.js"…

Vue.js:從 Web 到桌面的跨端實踐與技術選型指南

一、Vue.js 的核心能力邊界 作為漸進式 JavaScript 框架,Vue.js 的核心價值在于構建現代 Web 用戶界面: ? 前端核心場景:單頁應用(SPA)、動態交互界面、可復用組件開發 ? 架構限制:無法直接改造 B/S(瀏覽器/服務器)為 C/S(客戶端/服務器)架構 關鍵差異:B/S 依賴瀏…

SSRF11 各種限制繞過之DNS rebinding 繞過內網 ip 限制

ssrf漏洞在廠商的處理下可能進行一些特殊處理導致我們無法直接利用漏洞 有以下四種&#xff1a; 1.ip地址限制繞過 2.域名限制繞過 3.30x跳轉繞過域名限制 4.DNS rebinding繞過內網ip限制 本章我們講DNS rebinding 繞過內網 ip 限制 DNS rebinding 繞過內網 ip 限制 假…

FreeRTOS之鏈表操作相關接口

FreeRTOS之鏈表操作相關接口1 FreeRTOS源碼下載地址2 任務控制塊TCB2.1 任務控制塊TCB2.1.1 任務控制塊的關鍵成員2.1.2 TCB 的核心作用2.2 ListItem_t2.3 List_t3 函數接口3.1 vListInitialise3.2 vListInitialiseItem1 FreeRTOS源碼下載地址 https://www.freertos.org/ 2 …

項目一第一天

目錄 總結MySQL&#xff1a; 最終還是得按照SQL的語法來實施。 1、MySQL的數據類型&#xff1a;指業務數據按照什么格式存儲在數據庫中的。 任何數據類型最常見的三種&#xff1a;字符串、整型和小數型。 如&#xff1a;寶貝計劃這種存在視頻的項目&#xff0c;你們的視頻是存放…

STM32第二十天 ESP8266-01S和電腦實現串口通信(3)

1&#xff1a;透傳透傳&#xff08;又稱透明傳輸&#xff09;是一種通信模式&#xff0c;其核心特點是&#xff1a;通信設備對傳輸的數據不做任何解析或處理&#xff0c;僅作為“管道”原封不動地轉發數據&#xff0c;仿佛數據“透明”地穿過設備。透傳的本質關鍵特征說明無協議…

微服務引擎 MSE 及云原生 API 網關 2025 年 3 月產品動態

點擊此處&#xff0c;了解微服務引擎 MSE 產品詳情。

在 Docker 上安裝和配置 Kafka、選擇用于部署 Kafka 的操作系統

消息代理是一種軟件&#xff0c;充當在不同應用程序之間發送消息的中介。它的功能類似于服務器&#xff0c;從一個應用程序&#xff08;稱為生產者&#xff09;接收消息&#xff0c;并將其路由到一個或多個其他應用程序&#xff08;稱為消費者&#xff09;。消息代理的主要目的…

2D下的幾何變換(C#實現,持續更新)

&#xff08;1&#xff09;已知2D下&#xff0c;新坐標系的原點、X軸方向向量、Y軸方向向量在原始坐標系下的表示&#xff0c;求原始坐標系中直線&#xff0c;在新坐標系下的直線方程&#xff1b;&#xff08;2&#xff09;求直線與2D包圍盒的交點&#xff0c;可能有0、1或2個交…

Pandas-特征工程詳解

Pandas-特征工程詳解一、特征工程的核心目標二、數據類型與基礎轉換1. 數值型特征&#xff1a;類型優化與異常處理2. 分類型特征&#xff1a;編碼與規范化&#xff08;1&#xff09;標簽編碼&#xff08;Label Encoding&#xff09;&#xff08;2&#xff09;獨熱編碼&#xff…

pip install torch各種版本的命令及地址

一、遇到的問題&#xff1a;cuda和torch編譯時的版本不一致 在安裝mmcv時遇到error MMCV_WITH_OPS1 python setup.py develo RuntimeError: The detected CUDA version (11.3) mismatches the version that was used to compile PyTorch (10.2). Please make sure to use th…