Ruby中求50之內的素數方法
ruby求50之內的素數的方法,感覺對比PHP和SHELL方法是最簡單的,但SHELL中可以利用factor命令,而PHP中沒有求素數的對應函式的,需要自己設計演算法,三種方式大家對比學習下,應該還有更優更簡單的方法的。
#encoding:utf-8
#求50以內的素數(注意數字中..與...的區別)
for i in 2..50 #1預設不為素數,所以從1-50範圍內被排除
f=true #起始假定每個數都是素數
for p in 2...i #比自身小的正整數(1和自身除外)
if i%p==0 #如果能整除
f=nil#那麼這個數不是素數
break #並且跳出這層迴圈
end # if 結束
end #內層迴圈結束
print i," " if f #如果這個數保持起始假定,則列印
end #外層迴圈結束
PHP程式碼如下:
<?php
echo "以下程式會輸出50以內的素數:";
for($m=1;$m<=50;$m++){ //第一層迴圈,迴圈1-50直接的所有數
$k=0; //計數器初始化
for($i=1;$i<=$m;$i++){ //第二層迴圈,迴圈1-$m直接的所有數,$m<=$n
if($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
©著作權歸作者所有:來自51CTO部落格作者撫琴煮酒的原創作品,如需轉載,請註明出處,否則將追究法律責任
素數ruby程式碼求1-50之內運維開發(DevOps)篇
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2822198/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python求100以內的素數常用方法!Python
- 求n以內的所有質素
- Ruby 方法中引數尾的Hash可以省略{}
- Ruby方法傳不定引數
- 7-7 求n以內最大的k個素數以及它們的和
- 求十個連續最小自然數,非素數。
- Java中查詢給定數字下最大素數的2種方法Java
- 輸出一個區間內的質數(素數)
- 018--python--列印100以內的素數Python
- 轉載:求任意2個整數互素的概率
- 面試官本拿求素數搞我,但被我優雅的“回擊“了(素數篩)面試
- javascript求餘數的方法JavaScript
- 面試官本拿求素數搞我,但被我用素數篩優雅的“回擊“了面試
- 在 Ruby 中執行 Shell 命令的 6 種方法
- Logstash中的ruby
- 面試官:你知道怎麼求素數嗎?面試
- Ruby 方法定義
- python基礎練習題(按條件對指定序列求和,列印99乘法表、求斐波那契數列、百馬百擔、求水仙花數、求n以內的所有質數(素數)和)、集合的講解、一些公關方法Python
- 求陣列內所有偶數的和陣列
- 求1000以內所有偶數的和
- Ruby中的陣列陣列
- rails on ruby,ruby on rails 之程式碼塊(二)AI
- PAT-B 1013 數素數 【素數】
- Python中如何求1-100的奇數和?方法詳解!Python
- 面試之jquery中的ajax方法引數面試jQuery
- C語言求200000以內的自守數C語言
- 素數
- Ruby中的true和falseFalse
- Ruby中 ?與!的慣例
- Ruby中的設計模式設計模式
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- [譯] Ruby 2.6 增加了 Integer 和 Float 方法的異常引數
- C 語言輸出100至200之間的質數(素數)
- 1s內控制向某個請求請求的次數
- 開發新手最容易犯的50個 Ruby on Rails 錯誤(1)AI
- Ruby 札記 - Ruby 集合家族之雜湊(Hash)
- Ruby 札記 - Ruby 集合家族之陣列(Array)陣列
- 二十分鐘內學會Ruby