天天看點

第15天:窮舉算法(水仙花數、階乘求和)

今天學習了js中基本的窮舉法,求水仙花數、階乘、求和、找因數、找質數等。

求三位數的個位、十位、百位方法:

var ge=i%10;//求個位

var shi=parseInt(i%100/10);//求十位

var bai= parseInt(i/100);//求百位

下面是簡單的練習:

1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>js-窮舉算法</title>
 6 </head>
 7 <body>
 8     <script>
 9     //找出能被num整除的所有數
10     var num=parseInt(prompt("請輸入一個數字"));
11     for(var i=1;i<=num;i++){
12         if(num%i==0){
13             console.log(i);
14         }
15     }
16 
17     //找出60以下(逢7過)的安全數
18     for(var i=1;i<60;i++){
19         if(i%7!=0&&i%10!=7){
20             console.log(i);
21         }
22     }
23 
24     //找出1000以内的所有水仙花數
25     for(var i=100;i<999;i++){
26         var bai=parseInt(i/100);//擷取百位數
27         var shi=parseInt(i%100/10);//擷取十位數
28         var ge=i%10;//擷取個位數
29         //判斷是否符合水仙花數的特點a3+b3+c3=i
30         var a=Math.pow(bai,3);
31         var b=Math.pow(shi,3);
32         var c=Math.pow(ge,3);
33         if (a+b+c==i) {
34             console.log(i);
35         };
36     }//153,370,371,407
37 
38     //求1到100的和
39     var num=0;
40     for(var i=1;i<=100;i++){
41         num+=i;
42     }
43     console.log(num);//5050
44 
45     //求1到13的階乘
46     var num=1;
47     for(var i=1;i<=13;i++){
48         num=num*i;
49     }
50     console.log(num);//6227020800
51 
52     //找因數
53     var amount=0;
54     var num=parseInt(prompt("請輸入一個整數"));
55     for(var i=1;i<=num;i++){
56         if(num%i==0){
57         amount++;
58         }
59     }
60     alert(amount);//輸入48,結果為10
61 
62     //找質數(隻能被1和自己整除的數)
63     var amount=0;
64     var num=parseInt(prompt("請輸入一個整數"));
65     for(var i=1;i<=num;i++){
66         if(num%i==0){
67         amount++;
68         }
69     }
70     if(amount>2) {
71         alert("不是質數");
72     }else{
73         alert("是質數");
74     }
75     </script>
76 </body>
77 </html>      

 七夕快樂!

繼續閱讀