算法13 ◉‿◉ 判断 101-200 之间有多少个素数,并输出所有素数。
本帖最后由 不二如是 于 2017-5-19 20:35 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
判断素数的方法:用一个数分别去除 2 到 sqrt( 这个数 ) 如果能被整除,则表明此数不是素数,反之是素数。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
en window.onload = function () {
let result = [];
for (let i = 101; i <= 200; i++) {
let flag = true;
for (let j = 2; j <= Math.sqrt(i); j++) {
if (i % j === 0) {
flag = false;
break;
}
}
if (flag) {
result.push(i);
}
}
console.log(result);
}; window.onload = function(){
var str = '';
for(var i = 101; i <= 200;i++){
if(is_prime(i)){
str += i + ',';
}
}
document.body.innerHTML = str;
functionis_prime(n){
for(var i = 2; i <= Math.sqrt(n);i++){
if(n % i == 0){
return false;
}
}
return true;
}
}; kankan 咱们这个js 有学习交流群不? 看看 看看 <!DOCTYPE html>
<html>
<head>
<title>13</title>
<script type="text/javascript">
var sushu=new Array();
for(var i=100;i<200;i++){
sushu.push(i)
var temp=i;
for(var j=2;j<temp;j++){
if(i%j==0){
i=i/j;
j=1;
if(i==1){
sushu.pop(temp);
}
}
}
i=temp;
}
document.write("100到200间的素数有:"+sushu)
</script>
</head>
<body>
</body>
</html> 本帖最后由 a211827754 于 2018-9-23 17:48 编辑
let know = function(min,max) {
let str = '';
let check = function(input) {
let count = 0;
let flag = 1;
for(let i = 2; i < input; i++){
if(input % i ==0){
flag = 0;
break;
}
}
if(flag == 1){
if(input == 1){
return '';
} else {
return input + ' ';
}
} else {
flag = 1;
return '';
}
}
for(let j = min; j <= max; j++){
str += check(j);
}
return str;
}
alert(know(101,200)); var prime_nums_fun = function(n){
var prime_nums = [],isPrimeNum;
for(var i=2;i<n;i++){
if(n%i == 0){
isPrimeNum = 0;
return false;
break;
}else{
isPrimeNum = 1;
}
};
if(isPrimeNum==1){
prime_nums.push(n);
}
document.write(prime_nums+',');
}
prime_nums_fun(17);
for(var i=101;i<200;i++){
prime_nums_fun(i);
}
写这段的时候,出现了for执行完后,后续操作不执行的bug
百度一下,说是数组访问越界的问题,也就是for那里要写<而不是<=
如果有了解的大佬麻烦告知一波原理{:10_245:} <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
for(var i=100;i<201;i++){
for(var j=2;j<Math.sqrt(i);j++){
if(i%j==0){
break;
}else{
if(j==parseInt(Math.sqrt(i))){
document.write(i+',');
}
}
}
}
</script>
</html>
{:5_102:} 学习
for (var i=101 ; i < 200 ; i++){
var flag = true;
for (var j=2 ; j < i ; j++){
if (i%j == 0){
flag = false;
break;
}
}
if (flag == true){
console.log(i);
}
}
1 1
我爱你
{:10_277:}
页:
[1]