www.webdeveloper.com
Results 1 to 3 of 3

Thread: Problem with a script to check prime numbers.

  1. #1
    Join Date
    Aug 2012
    Posts
    1

    Smile Problem with a script to check prime numbers.

    Hi everyone! I'm new to this forum and I hope I can be useful to this community now that I'm learning Javascript

    I have a problem with a Javascript function. It's a simple script to check if a number is a prime number or not. I know there's already lots of this examples on the Internet but I didn't wanted to check them only to see if I could do it on my own.

    So, here's my script. It's works just fine, but for some reason, when I write 33, the script says it is a prime number, when it's not. Any ideas?

    //Prime number checker
    //@rodochoa
    var i =parseInt(prompt("Write a number"));
    isPrime(i);
    function isPrime(num){

    if(num === 1 || num ===2 || num===3){
    //If the input is 1,2,3 it prints directly without checking
    console.log(num + " is a prime number");
    }
    else{
    for(i=2;i<num;i++){
    if(num%i===0){
    console.log(num + " is not a prime number");
    break;
    }
    else{
    console.log(num + " is a prime number");
    break;
    }
    }

    }
    }

    Thanks in advance And greetings from Mexico.

  2. #2
    Join Date
    Mar 2007
    Location
    U.K.
    Posts
    1,127
    Your algorithm is wrong. It considers 33 a prime as soon as it fails to divide it by 2.
    Where used, return should be executed unconditionally and always as the last statement in the function.

    That's my signature, it's not part of the damn post!

  3. #3
    Join Date
    Sep 2007
    Posts
    301
    Code:
      
    <html>
    <head>
    <title>asal sayı</title>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <LINK href="stil.css" type=text/css rel=stylesheet>
    </head>
    <body>
    <form name="form1">
    <table style=" text-align: left; width: 493px; height: 110px;" >
    <tr><td><p>Aşağıdaki kutucuğa 50000'den k&#252;&#231;&#252;k bir sayı yazıp kutucuk dışında bir yere tıklayın.1'den yazdığınız sayıya kadar olan asal sayılar bulunacaktır. B&#252;y&#252;k sayılar yazmanız halinde internet tarayıcınız kilitlenebilir. Yazık ona da.</p></td></tr>
    
    <tr><td><textarea cols="6" rows="1" name="son" onChange="rast()" size="4">100</textarea><a id="bekle">-</a>
    </td></tr>
    
    <tr><td><textarea name="kutu" rows="13" cols="50" style="font-size:14; color:blue;">10</textarea></td></tr>
    </table>
    </form>
    <script type="text/javascript">
    
    var en=50000,tt,t,ad=0
    asal=new Array(2,3,5,7,11,13)
    function rast(){
    if (document.form1.son.value >en){alert(en + " den b&#252;y&#252;k sayı yazmayın !!!")}
    if (document.form1.son.value <= en){bekle.innerHTML=" Hesaplanyor, l&#252;tfen bekleyin !"; setTimeout("rast2()",100)
     }
    }
    function rast2(){
    var ns=document.form1.son.value/2,  n=5, m="2"
    for(i=7;i<=ns;i++){
    t=2*i + 1;tt=1;ad=0
    nnn=Math.pow(t,0.5)
    nnn=(Math.round(nnn))
    if(nnn<=5)nnn=5
    for(j=1;asal[j]<=nnn;j++){tt=t&#37;asal[j];if (tt==0)ad=1}
    if (ad==0){n++;asal[n]=t}
    }
    for(k=1; k<=n;k++)m=m+", "+ asal[k]
    document.form1.kutu.value=m +"-------" +(n*1+1)+ "  tane"
    bekle.innerHTML=" Bitti !"
    }
    rast();
    
    </script>
    </body>
    </html>
    İyiliği emret. Kötülükten alıkoy. (31/16)

    hasbunallahuVeNimelVekil++

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles