當前位置:首頁 » 編程軟體 » js腳本輸出0100所有素數

js腳本輸出0100所有素數

發布時間: 2022-08-06 03:51:45

Ⅰ 用javascript編寫:在頁面中顯示1~100之間的所有素數,並且控制每行顯示5個素數。

原理:
如果i可以整除2到i/2的數,它就不是素數;如果全部都不能整除,它就是素數。
因為i肯定不能整除i/2到i之間的數,所以不用計算,減少運算的時間。

我把本功能分了2個函數來寫,一個用來計算素數,一個用來顯示結果。這樣如果顯示的時候需要更改格式,不需要改計算素數的函數,重用性比較好

//調用函數顯示結果,把0到100間的素數顯示在id為result的div中
printArray(sushu(0,100),'result');
//顯示數組的函數,以空格為間隔顯示數組的值,每行顯示5個。調用時第一個值arr寫需要顯示的數組第二個值area寫數組顯示的位置的ID
function printArray(arr,area){
var str='';
for(var i=0;i<arr.length;i++){
if(i>0 && i%5==0) str=str+"<br />";
str=str+arr[i]+'& nbsp;';//& nbsp;請去掉&後的空格,可以換成其他的間隔符號
}
document.getElementById(area).innerHTML=str;
}
//計算素數用的函數,使用時輸入start和end,計算start到end之間的素數
function sushu(start,end){
if(start<0 ||start>end) return "error";
if(start<2) start=2;
var flag=false;
var strResult=new Array();
for(var i=start;i<end;i++){
for(var j=2;j<(i/2);j++){
if(i%j==0) flag=true;
}
if(!flag) strResult.push(i);
else flag=false;
}
return strResult;
}

html中寫<div id="result"></div>

Ⅱ 用JavaScript,求1到100內所有的質數,(質數就是素數),不用函數方法,用循環和brea

一:十萬一下的 呵呵演算法一:
測試 10 萬以下的質數: 程序代碼
// 獲得 0 到 limit 之間的素數
// author: dron
function getPrimeNumbers(limit){
var result = [2];
var is;
if(limit < 2)
return [];
for(var i = 3, s; i <= limit; i += 2){
is = true;
s = Math.sqrt(i);
for(var j = 0, r, l = result.length; j <= l; j ++){
r = result[j];
if(r > s)
break;
if(i % r)
continue;
is = false;
break;
}
is && result.push(i);
}
return result;
}演算法二: 程序代碼
var stopwatch = new Date(); // 計時器, 初始化.
var MaxNum = 100000; // 查找 2到MaxNum 這范圍內的素數 ( MaxNum 要>= 2 ).
var i, j; // 計數器.
var count = 1; // 初始化素數的個數, 因為我們從2開始計, 所以初始化為 1.
var PrimeTemp = []; // 在這個數組做記號, 做了記號的, 全不是素數.
var PrimeArys = [2]; // 貯存素數的 數組. 因為 MaxNum >= 2, 所以第一個數組元素的值為 2 .
var oNum = Math.ceil( Math.sqrt( MaxNum ) ); // 為什麼用 開方? 看到下面2個 for 沒.
// 把不是素數的做 "記號".
for(i=3; i<oNum; i+=2) // +=2 ??? 我們整個程序都不用雙數, 全用單數, 這樣就快2倍了.
if( PrimeTemp[i]==null ) // 初始化 PrimeTemp 的數組, 數組裡面當然什麼都沒有.
for(j=i; i*j<=MaxNum; j+=2) // i 的 j 倍一定不是素數, 但我們要 i*j 來看看是否超過了 MaxNum
PrimeTemp[ i*j ] = 0; // 初始化 PrimeTemp 里的元素, 現在來幫它們做一個 "記號". 因為這個元素"不是"素數.
// 輸出素數了.
for(i=3; i<=MaxNum; i+=2) // +=2 ,不要忘記, 我們不用雙數的.
if( PrimeTemp[i]==null ) // 如果是 true , 這就表明 這個沒有被做 "記號" , 所以它是 素數.
PrimeArys[ count++ ] = i; // 是 素數 的話, 就存入 PrimeArys 數組.
document.write( PrimeArys.join(" ") , "<br><br>從2到"+MaxNum+"共有素數 "+count+" 個。"); // 用 join()提高輸出效率
var t=new Date()-stopwatch;
alert("本次運行了 "+t+" 毫秒。"); //看看 程序運行了多久.二:簡單點的<script>
function look(num){
time=new Date();
a=new Array(2,3,5,7,11,13,17,19,23,29,31,37)
for(x=41;x<num;x+=2)
{
if(aa3(x))a[a.length]=x
}
time=new Date()-time;
document.write(a.toString().replace(/\,/g,"<br>"))
alert("共"+a.length+"個,用時"+time+"毫秒")
}function aa3(n)
{
if(n%3==0)return false
if(n%5==0)return false
var b=a.length
for(var y=3;y<b;y++){if(n%a[y]==0)return false}
return true
}</script>
<input id=aa value=10000><input type=button value=計算 onclick=look(aa.value)>

Ⅲ 如何用javascript編寫出出1到100的素數

for(let i=1;i<=100;i++){
if(check(i)) {
console.log(i)
}
}

// 判斷當前給定的數 num 是否為素數, 是素數返回 true, 否則返回 false
function check(num){
if(num === 1) {
// 1 不是素數也不是合數, 返回 false
return false
} else {
// 聲明變數用於統計從1~根號下 num,之間 能被 num 整除的數的個數
let count = 0;
for(let i=1; i<=Math.sqrt(num); i++) {
if(num%i === 0) {
count++
// 當發現在1~根號下 num 之間有超過1個數可以被 num 整除, 說明 num 一定不是素數,直接返回false, 後面的數不用判斷了
if(count >1) {
return false
}
}
}
// 因為素數只能被1和自身整除,
// 那麼從1~根號下 num 之間一定只有一個數(1)可以被 num 整除, 所以當 count 等於1時, 這個num 就是素數
return count == 1
}
return false
}

Ⅳ 使用javascript編寫程序,顯示100以內的素數

.mainTB td
{
text-align:right;
width:50px;
}

function generate() {
var tb = document.getElementById("tb");
var row;
var cell;
var n = 0;//當前列下標
var count;//整除數量
for (var i = 1; i < 101; i++) {
count = 0;
for (var j = 1; j <= i; j++) {//運算
if (i % j == 0) {
count++;
if (count > 2) {
break;
}
}
}
if (count == 2) { //判斷質數
if (n == 0) { //新行
row = tb.insertRow(tb.rows.length);
}
cell = row.insertCell(n);
cell.innerHTML = i;
if (++n == 6) { //跳列
n = 0;
}
}
}
}

<input type="button" value="計算" onclick="generate()"/>
<table id="tb" class="mainTB">
</table>

Ⅳ 用JavaScript 在網頁上編程輸出0~100之間的所有素數,並要求每行顯示5個素數

<script>
document.write('<table><tr>');
var num=0;
for(var i=2,flag;i<=100;i++){
flag=false;
for(var j=2;j<i;j++){
if(i%j===0){
flag=true;
break;
}
}
if(!flag){
if(num!=0&&num%5==0){
document.write('</tr><tr>')
}
num++;
document.write('<td>'+i+'</td>');
}
}
document.write('</table>');
</script>

Ⅵ 用javascript編程輸出100-1000的所有素數,並要求每行顯示六個素數。

varbrNum=六;//換行
varstartNum=一百;//初始值
varendNum=一千;//結束值
window.onload=function(){
endNum+=1;
varstr="";
varn=0;//當前列下標
varcount;//整除數量
for(vari=startNum;i<endNum;i++){
count=0;
for(varj=1;j<=i;j++){
if(i%j==0){
count++;
if(count>2){//被兩數以上所整除
break;
}
}
}
if(count==2){//判斷質數
if(n==0){//新行
str+="<br/>";
}
str+=i+"";
if(++n==brNum){//滿列跳行
n=0;
}
}
}
document.getElementById("showDiv").innerHTML=str;
}
<divid="showDiv"></div>

未防止被抽,麻煩將開頭的初始化變數,改成數值。

備註:在「//新行」 下面

str += "br"; //左邊這里有個br換行標簽,被過濾了。

Ⅶ 用JavaScript語言編程實現判斷100以內的素數

以下代碼可以實現JavaScript求n個素數,當n=500時滿足題目需求。
functionprime(n){
varprimeArr=[2];
varisPrime=function(num,primeList){
if(num==2){
returntrue;
}
for(vari=3,iLen=Math.sqrt(num),j=1;i<=iLen;i=primeList[j++]){
if(num%i==0){
returnfalse;
}
}
returntrue;
}
if(isNaN(n)||n<1){
return[];
}
for(vari=3,i<n;i+=2){
if(isPrime(i,primeArr)){
primeArr.push(i);

}
}
returnprimeArr;
}
prime(100)

//函數調用
prime(100);//計算100以內的素數:
素數即除去1和其本身兩個數之外,不能被任何數整除的整數。
由公理可知,如果一個整數能被分解成多個整數,則必有一個數不大於該整數的平方根(反證法可知,如果分解成的兩個數都大於平方根,則乘積必大於原數),故在循環時,只需循環到該數的平方根即(Math.sqrt(num)為求平方根)
如果一個數能被2整除,則除2之外其他數都不是素數,故從3開始遍歷能夠減少循環次數
如果一個數能夠被分解,則最終分解結果必然為多個素數之積,故循環時只需要嘗試之前算好的素數能否整除當前的數,極大減少循環次數

Ⅷ javascript 輸出100-1000之間的素數

首先你的源碼有幾個粗心大意的地方,第一:script標簽有開始沒結束,js代碼應該在<script type="text/javascript">這里是js代碼</script>,你沒有結束標簽,其次,變數n賦值的時候你寫的是o,應該是0.接下來說語法吧,可能你是需要格式要求還是怎麼回事,如果單輸出素數的話,那個n純粹是多餘的,下面我附上修改後的代碼,運行正常。

<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>無標題文檔</title>
</head>

<body>
<pre>
<scripttype="text/javascript">
vari,j,m;
for(i=100;i<=1000;i++)
{
for(m=1,j=2;j<i;j++)
if(i%j==0)
{
m=0;break;
}
if(m==1)
{
document.writeln(i);

}

}
</script>
</body>
</html>

運行截圖:

熱點內容
網吧怎麼通過伺服器玩網路游戲 發布:2025-02-08 19:59:52 瀏覽:912
文檔編輯加密 發布:2025-02-08 19:56:31 瀏覽:390
phpmysql存儲過程實例 發布:2025-02-08 19:54:40 瀏覽:159
淘寶賣的地下城腳本 發布:2025-02-08 19:41:40 瀏覽:61
安卓怎麼把提升畫質關了 發布:2025-02-08 19:40:11 瀏覽:359
我想你加密 發布:2025-02-08 19:39:24 瀏覽:212
java手機號正則表達式 發布:2025-02-08 19:34:50 瀏覽:350
ue加密 發布:2025-02-08 19:34:05 瀏覽:473
滁州壓縮機 發布:2025-02-08 19:34:03 瀏覽:880
壓縮棉花絮片 發布:2025-02-08 19:33:12 瀏覽:394