1. 程式人生 > >簡單因式分解及利用質數表進行因式分解

簡單因式分解及利用質數表進行因式分解

簡單因式分解

簡單因式分解,不用質數表,比較簡單,就不註釋了

int i, n;
n = 500;
printf("%d = ", n);
for(i = 2; i * i <= n;) {
    if(n % i == 0) {
        printf("%d * ", i);
        n /= i;
    }
    else
        i++;
}
printf("%d\n", n);

利用質數表進行因式分解

利用質數表進行因式分解,程式碼是網上找的,自己加的註釋,學習了

#define N 1000
int prime(int*);  // 求質數表
void factor(int*, int);  // 求factor

//主程式
int ptable[N+1] = {0};//定義一個數組
int count, temp;
count = prime(ptable);//求質數表
temp = 98;//被因式分解的數
factor(ptable, temp);//根據質數表因式分解
printf("\n");

//求質數表
int prime(int* pNum) {
    int i, j;
    int prime[N+1];//臨時
    for(i = 2; i <= N; i++)
        prime[i] = 1;
    
    for(i = 2; i*i <= N; i++) {
        if(prime[i] == 1) {//如果i可能是質數,則遍歷,並判斷
            for(j = 2*i; j <= N; j++) {//起碼要從2*i開始
                if(j % i == 0)
                    prime[j] = 0;//提前判定j不是質數,減少判斷,很好的優化
            }
        }
    }
    
    for(i = 2, j = 0; i < N; i++) {
        if(prime[i] == 1)
            pNum[j++] = i;//獲得質數表
    }
    return j;
}

//根據質數表因式分解
void factor(int* table, int num) {
    int i;
    for(i = 0; table[i] * table[i] <= num;) {//如果除以質數表中的數可以除盡,則符合要求(num隨著迴圈逐漸變小,直到num不可再分,迴圈結束,然後直接打印出即可,很巧妙)
        NSLog(@"table[i]====%d",table[i]);
        NSLog(@"num===%d",num);
        if(num % table[i] == 0) {
            
            printf("%d * ", table[i]);
            num /= table[i];
        }
        else
            i++;
    }
    printf("%d\n", num);
}


相關推薦

簡單因式分解利用質數進行因式分解

簡單因式分解 簡單因式分解,不用質數表,比較簡單,就不註釋了 int i, n; n = 500; printf("%d = ", n); for(i = 2; i * i <= n;) { if(n % i == 0) { printf("

服務器IO測試,利用sysbench工具進行mysql oltp性能測試

io測試 sysbench背景 公司打算2018年有把服務遷移到雲上的計劃,於是選擇了市場上的幾款雲產品來進行比較,其中對磁盤IO與mysql讀寫性能的測試是很重要的一個環節。故此,針對雲產品的磁盤IO以及雲數據庫的讀寫,進行了一些粗略的測試。 這裏測試的服務器來自騰訊雲,這裏暫且不討論雲

oracle11g利用分割槽進行查詢效能的優化

----假如員工表的資料量很大,我們可以對員工表建立分割槽表(根據部門編號採用列表分割槽) create table employee (   empId int constraint p_emp primary key,   empName varchar2(20) not null ,   gender

在flex&bison的基礎上利用符號進行語義分析

如何編譯 兩種方法: (1)使用make命令:先將要執行的所有命令寫入到Makefile檔案中,然後執行make命令,這就相當於將Makefile中的所有命令都執行完畢了,在終端可以清楚地看到系統每執行一條命令的結果,如果有錯或者有警告都會輸出。make執行

django 利用ORM對單進行增刪改查

man api light 賦值 連接 取出 簡單 extern follow 牛小妹上周末,一直在嘗試如何把數據庫的數據弄到界面上。畢竟是新手,搞不出來,文檔也看不懂。不過沒關系,才剛上大學。今晚我們就來解釋下,要把數據搞到界面的第一步。先把數據放到庫裏,然後再把數據從庫

MySQL數據庫 分分庫備份批量恢復如何進行

eight -- sim /bin/bash nbsp AR ble height l數據庫 腳本實現#!/bin/bashfor db_name in `mysql -e "show databases;"|sed 1d` do mkdir

『PHP學習筆記』系列九:利用from單的onSubmit事件進行瀏覽器端的資料驗證

資料驗證思路:      當我們在網站進行註冊時,一般有兩個資料驗證的過程,一個是在伺服器端的驗證,一個是在瀏覽器端的驗證。瀏覽器端的驗證一般是用來驗證提交的資訊是否符合註冊的要求,即資料是否合法;伺服器端的驗證主要是驗證該註冊資訊是否已經存在於伺服器中,如果註

MYSQL利用Navicat對含有Bold欄位進行匯入匯出

MYSQL中含有Blob欄位是一件挺麻煩的事情,匯出匯入不方便。我介紹我是怎麼做的。 1、在MYSQL的my.ini最後中新增一行配置max_allowed_packet = 100M,重啟MYSQL服務 根據實際情況來定這個數值的大小,我這次表裡面有82個mediumb

利用Git 上傳程式碼到Coding的簡單操作步驟一些錯誤總結

今天看到git可以上傳程式碼到coding.net,感覺還是不錯的,於是自己動手上傳了一次,在期間發現了很多的問題,在這裡總結一下,希望能幫到未上傳成功的程式設計師們! 1:先自己註冊coding.net賬號! 2.安裝git 客戶端 安裝過程中的詳細說明可參考: https://jingyan.baidu

[MS Access+MySQL系列]如何利用phpMyAdmin介面進行資料匯入、SQL簡易資料查詢和資料刪除等操作?

承接[MS Access+MySQL系列]如何在phpMyAdmin設定使用者帳號和密碼文章,當後端資料庫搭建完成後,如何在phpMyAdmin中匯入資料表、進行簡易SQL查詢和資料表刪除等等操作,使得未來前端操作人員進行存取作業,成為下一步重點工作。 本文以虛構的客戶資料為例,說明如何將客

利用unittest+ddt進行介面測試(一):簡單demo

原文地址 一般進行介面測試時,每個介面的傳參都不止一種情況,一般會考慮正向、逆向等多種組合。所以在測試一個介面時通常會編寫多條case,而這些case除了傳參不同外,其實並沒什麼區別。 這個時候就可以利用ddt來管理測試資料,提高程式碼複用率。 先看一個簡單的dem

利用Numpy的svd函式實現的PCA為什麼是對協方差矩陣進行SVD分解

眾所周知,PCA是資料分析中經常用到的一種方法,主要用途是對高維資料進行降維,有兩大目的:去相關和去冗餘。 其大致的原理是通過對資料協方差矩陣進行特徵分解找到使資料各維度方差最大的主成分,並將原資料投影到各主成分上達到去相關的目的,若在投影到各主成分時,僅選取特徵值最大的前若干個主成分,

利用篩法得到質數

指整數在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數(1和自己)的自然數即為素數。比1大但不是素數的數稱為合數。1和0既非素數也非合數。素數在數論中有著很重要的地位。 以上摘自百度百科。 利用篩法求質數的思路是,從最小的質數

利用Eclipse-Python簡單爬取京東商城書籍資訊進行視覺化

【實驗目的】 熟悉從網上爬取資料到將資料進行視覺化的全部流程,通過例項瞭解並掌握每個過程。 瞭解爬蟲爬取資料的原理,並選擇一種語言程式設計,將資料獲取到資料庫。 熟練使用 eclipse 中 Java 語言操作資料庫資料。 瞭解 ECharts 中各種圖的特

SQL2000系統、儲存過程、函式的功能介紹應用2009年01月21日 星期三 11:38雖然使用系統儲存過程、系統函式與資訊架構檢視已經可以為我們提供了相當豐富的元資料資訊,但是對於某些特殊的元資料資訊,我們仍然需要直接對系統表進行查詢。因為SQL

雖然使用系統儲存過程、系統函式與資訊架構檢視已經可以為我們提供了相當豐富的元資料資訊,但是對於某些特殊的元資料資訊,我們仍然需要直接對系統表進行查詢。因為SQL Server 將所有資料庫物件的資訊均存放在系統表中,作為 SQL Server 的管理、開發人員,瞭解各個系統表的作用將有助於我們瞭解 SQL

APP利用token機制進行身份認證(理解token機制+簡單Java程式碼實現)

什麼是token token的意思是令牌,想象一下用過的qq令牌,是來自(騰訊)服務端生成的一串字元,作為客戶端(我們自己)進行請求的一個標識。比如說:改qq密碼。而這裡我們是自己開發App,我們的使用者用token請求登入,我們對他進行身份認證。 當用戶第一

回憶Partition算法利用Partition進行快排

sta -m 就是 color 基本 結果 num 一次 name 一.Partiton算法 Partiton算法的主要內容就是隨機選出一個數,將這個數作為中間數,將大於它的排在它右邊,小於的排在左邊(無序的)。 1 int partition (int

利用邏輯迴歸進行簡單的人群分類解決廣告推薦問題

一、什麼是邏輯迴歸?   邏輯迴歸又稱對數機率迴歸是離散選擇法模型之一,邏輯迴歸是一種用於解決監督學習問題的學習演算法,進行邏輯迴歸的目的是使訓練資料的標籤值與預測出來的值之間的誤差最小化。logistic迴歸的因變數可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋,多類可以使用sof

利用Express+MySQL進行簡單的增刪改查

前言: 隨著JavaScript語言的快速發展,其功能越來越強大,能做的事情也越來越多。 目前,web前端工程師能夠利用NodeJS搭建服務,也成為了越來越多網際網路公司對前端開發的硬性要求。 本文主要介紹基於NodeJS封裝的Express框架進行對MySQL關係資料庫的CURD(增刪改查)。 環境搭建: