Wrong result

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ladislav
    New Member
    • Oct 2006
    • 17

    #1

    Wrong result

    When I debug this isn’t mistakes.
    When I start it this is one mistake.
    Give me somebody advises please

    public static void main(String[] args) {
    int limit=1000;
    boolean []prime=new boolean[limit+1];
    prime[2]=true;

    for(int i=2;i<=limit;i+ +)
    {

    prime=true;


    if(i<2||(i%2==0 ))
    prime=false;

    for(int j=2;j<=limit-1;j++){

    if(i%j==0)

    prime=false;
    break;
    }

    if(prime==true)

    System.out.prin tln(i+"isPrime" );
    else
    System.out.prin tln(i+"isn'tPri me");
    }
    }
    }
  • horace1
    Recognized Expert Top Contributor
    • Nov 2006
    • 1510

    #2
    prime is an array so you need to specify the element you are addressing, e.g. to access element i
    prime[i]=true;

    code now looks like
    Code:
    public class t{
    
    public static void main(String[] args) {
    int limit=1000;
    boolean []prime=new boolean[limit+1];
    prime[2]=true;
    
    for(int i=2;i<=limit;i++)
    {
    
    prime[i]=true;        // ** needs index [i]
    
    
    if(i<2||(i%2==0))
    prime[i]=false;
    
    for(int j=2;j<=limit-1;j++){
    
    if(i%j==0)
    
    prime[j]=false;
    break;
    }
    
    if(prime[i]==true)
    
    System.out.println(i+"isPrime");
    else
    System.out.println(i+"isn'tPrime");
    }
    }
    }

    Comment

    • ladislav
      New Member
      • Oct 2006
      • 17

      #3
      Thank for your advice.

      Comment

      • r035198x
        MVP
        • Sep 2006
        • 13225

        #4
        There are some things in your codes that I find not neccessary. Compare for example with this:

        Code:
         
        public class t{
         public static void main(String[] args) {
          int limit = 1000;
          boolean []prime=new boolean[limit+1];
          for(int i=2;i<=limit;i++)
          {
           prime[i]=true;
           for(int j=2;j<i;j++){
        	if(i%j==0)
        	prime[i]=false;
        	continue;
           }
           if(prime[i]==true)
        	System.out.println(i+" isPrime**");
           else
        	System.out.println(i+" isn'tPrime");
          }
         }
        }

        Comment

        • ladislav
          New Member
          • Oct 2006
          • 17

          #5
          Thank for your advice very much.

          Comment

          Working...