今天学习了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>
七夕快乐!