電腦程式的構造和解釋 1.21 尋找素數因子

來源:互聯網
上載者:User

標籤:

尋找素數因子

要求用書中的smallest-divisor過程找出199, 1999, 19999的最小因子。

Scheme Code:

主要流程:

定義尋找素數的過程

如果2的平方即4,大於測試值,那麼它肯定是素數

如果n能和2整除,那麼不是素數,最小因子是2

如果不是,回到過程find-div,再試試能不能與2+1整除,迴圈

 

#lang racket(define (square x)  (* x x));定義篩選(define (smallest-div n)  (find-div n 2))(define (find-div n td)  (cond ((> (square td) n) n)        ((divd? td n) td)        (else (find-div n (+ td 1))))) (define (divd? a b)  (= (remainder b a) 0));primer過程,如果滿足條件那麼等於true,否則false,用#t和#f表示,類似bool(define (primer? n)  (= n (smallest-div n)))

 

測試:

 

IN: (primer? 3) (smallest-div 199) (smallest-div 1999) (smallest-div 19999) OUT: #t 199 1999 7

C++ Code:

 

int square(int x){    int sum = x*x;    return sum;}int find_div(int n,int td){    if (square(td)>n)    {       return n;    }    else if (!(n%td))    {       return td;    }    else    {       find_div(n, td + 1);    }}int _tmain(int argc, _TCHAR* argv[]){    int a, b,real;    cin >> a >> b;    real = find_div(a, b);    cout << real << endl;    return 0;}

 

 

 

電腦程式的構造和解釋 1.21 尋找素數因子

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.