Ruby、PHP與SHELL中求50之內的素數方法

來源:互聯網
上載者:User

標籤:ruby   素數   php和shell對比   50之內   

求50之內的素數,ruby的代碼如下:

#encoding:utf-8#求50以內的素數(注意數字中..與...的區別)for i in 2..50    f=true #起始假定每個數都是素數    for p in 2...i #比自身小的正整數(1和自身除外)if i%p==0 #如果能整除f=!f #那麼這個數不是素數break #並且跳出這層迴圈        end # if 結束    end #內層迴圈結束    print i," " if f #如果這個數保持起始假定,則列印end #外層迴圈結束

PHP代碼如下:

<?phpecho "以下程式會輸出50以內的素數:";for($m=2;$m<=50;$m++){   //第一層迴圈,迴圈1-50直接的所有數$k=0;                                 //計數器初始化 for($i=1;$i<=$m;$i++){        //第二層迴圈,迴圈1-$m直接的所有數,$m<=$nif($m%$i==0){             //模數運算,如果餘數為0,K自增1$k++;}}if($k==2){                          //如果k的值等於1或者2,那麼是素數,將其輸出echo $m." ";}}?>

SHELL的方式略為簡單些,代碼如下:

#!/bin/bash#factor是shell命令,可以求出後面所接數字中的所有素數。for i in {2..50}do    factor $i | awk -F ‘[: ]‘ ‘{if(NF == 3)  print $1}‘done

另外,吐個槽,怎麼在編輯器下排好版的代碼粘貼到部落格中,代碼對應就自動消失了呢?另外,如果用常規方式,三種語言寫法都很類似;本來以為PHP中有求素數的函數的,後來沒有,需要自己設計演算法,這一點就沒有SHELL方便了。

本文出自 “撫琴煮酒” 部落格,請務必保留此出處http://yuhongchun.blog.51cto.com/1604432/1579176

Ruby、PHP與SHELL中求50之內的素數方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.