Ruby中求50之內的素數方法

2021-09-05 04:51:54 字數 759 閱讀 4109

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++)

} if($k==2)

}?>

shell的方式略為簡單些,**如下:

#!/bin/bash

#factor是shell命令,可以求出後面所接數字中的所有素數。

for i in 

do    factor $i | awk -f '[: ]' ''

done

求100之內的素數

題目 求100之內的素數 程式分析 判斷素數的方法 用乙個數分別去除2到 sqrt 這個數 如果能被整除,則表明此數不是素數,反之是素數。1 package com.li.fiftyalgorthm 23 4 題目 判斷101 200之間有多少個素數,並輸出所有素數。5 程式分析 判斷素數的方法 用...

篩法求素數 求100之內的素數

素數 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數 素數 現用0標記非素數,素數不標記。引用陣列,使0 100與陣列元素一 一相對應 0即a 0 1即a 1 2即a 2 注意特例,1 即a 1 不是素數,首先標記為0 剩下...

用篩選法求100之內的素數

所謂篩選法,指的是 埃拉託色尼篩法 採取的方法是,在一張紙上寫上1 100 全部的整數 然後逐個判斷他們是否為素數,找出乙個非素數,就把他挖掉,最後剩下的就是素數 具體做法如下所示 先把1挖掉,因為1不是素數 用2除它後面的各個數,能把2整除的數挖掉,即就是把2的倍數挖掉 用3除它後面的各個數,把3...