1. 程式人生 > >快速求質因子(一定程度上,比輾轉相除好得多)

快速求質因子(一定程度上,比輾轉相除好得多)

借鑑自我的朋友,http://my.csdn.net/raalghul。而他的qq也是需要輸入他qq號的質因子才能加他的,所以很有趣,我想他討教了求質因子的方法,然後加了他,哈哈。

方法:

按正常方法找一個數的因子,用一個for迴圈,遍歷到sqrt(num)前,一個個看能否除的通。

這裡有點不一樣,找到一個質因子後,num = num/i,減小了num的長度,直接加快了效率。為什麼可以這麼做,因為比如64,2的6次。如果你這樣的話,會直接把64除成1,一次性把2的因子全部消除了。所以這樣的目的就是一次性徹底消除一類因子,大大縮小num長度。只需要在迴圈完後判斷num是不是因子即可,因為你執行的沒有原來長了,所以num可能會被你漏掉。

程式碼:

private static List<Integer> getPrimeFactor(int num) {
    List<Integer> primeFactorList = new ArrayList<>();
    for (int i = 2; i * i < num; i++) {
        if (num % i == 0) {
            primeFactorList.add(i);
            while (num % i == 0) num = num / i;
}
    }
    if 
(num > 1) primeFactorList.add(num); return primeFactorList; }

接下來可能要用到質因子,所以應用場景先不寫了。

相關推薦

快速求質因子一定程度輾轉

借鑑自我的朋友,http://my.csdn.net/raalghul。而他的qq也是需要輸入他qq號的質因子才能加他的,所以很有趣,我想他討教了求質因子的方法,然後加了他,哈哈。 方法: 按正常方法找一個數的因子,用一個for迴圈,遍歷到sqrt(num)前,一個個看能

POJ 2348 Euclid's Game輾轉博弈+自由度分析

main -1 發現 轉移 pro b- color 思路 span 題目鏈接:http://poj.org/problem?id=2348 題目大意:給你兩個數a,b,Stan和Ollie輪流操作,每次可以將較大的數減去較小的數的整數倍,相減後結果不能小於0,誰先將其中

CSPContent Security Policy一定程度能預防XSS攻擊

在介紹CSP之前,我們先先來了解一下什麼是XSS攻擊? XSS攻擊:一種常見的跨指令碼web攻擊方式,它通過向瀏覽器注入一段可執行的惡意指令碼程式碼,並且被瀏覽器成功的執行來達到攻擊的目的。一次XSS攻擊可以獲取到使用者的聯絡方式,向用戶傳送詐騙資訊,甚至可以

區塊鏈技術很大程度會影響數字貨幣的發展

區塊鏈技術隨著區塊鏈技術的影響力逐漸的擴大,很多國家也逐漸的放松了對於數字加密貨幣的監管,更是有較多的國家,不但將區塊鏈技術的研發提上了日程,更是在數字加密貨幣上也開始了布局。   區塊鏈技術的最初應用和最成功的應用,都是比特幣,但是比特幣總量恒定,即使想要入局也只是通過交易或者挖礦的方式,比特幣市場顯然不能

volatile不能保證程式執行的原子性以及只能一定程度保證有序性

多執行緒併發程式設計如何正確的執行程式: 1、原子性:執行過程要麼成功要麼失敗,比如經典的銀行轉賬問題。 2、可見性:多執行緒併發時,一個執行緒修改了工作記憶體中的值(主存中的值),會立刻改變主存相應地址的值,其它執行緒工作記憶體的值無效,重新獲取主存的值。 3、有序性:程

idea快速生成實體類Entity找了半天自己一步就搞出來了

第一步、用idea連線資料庫(我這裡用的mysql)第二步、關鍵的來了,瑪德怪不得idea開發效率高,生成實體類一步搞定(右鍵選擇生成實體的表,那個Generare POJO就是了,屌不屌…………太屌了,然後稍微修改一下下)

consul-template + shell 實現一定程度的應用灰度升級

ice mes 代碼 rop div 管理平臺 公司 tin des 公司服務部署架構:gitlab+jenkins+自己開發的運維管理平臺+consul+aws ec2(cloudformation 進行雲資源配置管理) 1、修改/opt/scripts/Serv

在linux搭建nacos叢集步驟詳細linux小白也搞

(1)nacos官網:https://github.com/alibaba/nacos/releases/tag/1.2.1下載nacos安裝包到window本地(字尾為tar.zip)   (2)在linux上下載nginx包,linux安裝指令:(先去nginx官網檢視版本,Stable ver

TOJ4101.Guess Game(TOJ means Tianjin University Online Judge)dp的思想但這道題目是假dp

line bre 個人 eof ret calculate code stdio.h turn 題意:你要從[1,n]這個n個數中猜出來規定的某個數,現在這個數未知,問你在最糟糕的情況下(但是你采用了最優的策略),你要猜多少次才能猜出這個數。現在有兩種條件: 第一種:當你猜

圖片拖拽的繼承引用 1 需要引入23兩個js才能運行

type left set height har title back 運行 fun <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <

架構師百度雲連接有失效期快點保存1天後刪除

HP ava SQ 從入門到精通 開發 AC nod PQ 連接 1. PS大師之路視頻教程鏈接: https://pan.baidu.com/s/1mjYbcJA密碼:pqdt2.HTML5+CSS3從入門到精通.iso 鏈接:https://pan.baidu.com/

輾轉二進位制一的個數快速冪演算法使用遞迴的相同處

遞迴在演算法競賽中起到了很重要的角色,就這三個演算法進行一些歸納 輾轉相除法: //可以兩種遞迴的寫法,注意兩者的區別 int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int gcd(int a,int b) { if(b

http請求過程訪問一個頁面發生了怎樣的網路請求?

域名解析->域名 ->快取->根域dns->頂級域dns->本域dns->伺服器IP 1.搜尋瀏覽器自身DNS快取,如果不存在或者過期(>60s)放棄 2.搜尋作業系統自身的dns快取 3.讀取本地的HOST檔案 4.瀏覽器發起一個DNS的

原生JS的可視區域向上滾動向下滾動兩種圖片懶載入

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

基於Jquery的可視區域向上滾動向下滾動兩種圖片懶載入

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

RT-Thread 讀後感3 —— 實現就緒列表 定義就緒列表將執行緒插入到就緒列表

1. 定義就緒列表 執行緒建立好後,需要將執行緒新增到就緒列表裡面,表示執行緒已經就緒,系統隨時可以排程。RT-Thread定義的就緒列表如下: /* 執行緒就緒列表如下 ** RT_THREAD_PRIORITY_MAX 在rtconfig.h中預設定義為32 決定最大執行緒優先順

有哪些外行看上去很高大但在內行眼裡 low 不行的東西?

外行:大資料 內行:2004年就開始學習的資料倉庫,怎麼突然間在2010年用一個Low逼的不行的"大"資料就變成了每個人都可以用來裝逼的詞了?   外行:微服務 內行:2008年就擺脫了SOA的匯流排思想,曾經有過100多個服務獨立部署,承載不同的功能模組。怎麼突然間在

DML資料操作語言對錶記錄的操作-增刪改

1、插入資料 INSERT INTO 表名 (列名1,列名2,……) VALUES (列值1,列值2,……); 插入所有列 INSERT INTO stu ( number,name,age,gender ) Values( ‘itcast_0001’,‘zhang

【MYSQL學習筆記02】MySQL的高階應用之Explain完美詳細版看這一篇就夠了

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wx1528159409 最近學習MySQL的高階應用Explain,寫一篇學習心得與總結,目錄腦圖如下: 一、Explain基本概念 1. Explain定義 · 我們知道M

點選圖片放大的效果如果幫助大關注我後期更的作品奧

第一步,要下載燈箱這個外掛 連線:連結: https://pan.baidu.com/s/1o1mYq5oIfo87YSQF9kjy8w 提取碼: used 下載並且解壓到本地 3.1本地的燈箱解壓如圖 進入src 目錄 如下圖 5.1 專案目錄如下 6.HTM