第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>

 

 七夕快乐!

 

posted @ 2017-08-28 23:12  半指温柔乐  阅读(1050)  评论(0编辑  收藏  举报