今天学习了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>