How it improve

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

    #1

    How it improve

    I made this program test prime.
    I want it improve I have idea but I don’t now how it insert in into program.
    Howe somebody else idea?


    My idea: if(prime[i]==true)
    i*i==false;
    Thank for your help


    public class testPrime{
    public static void main(String[] args) {

    int limit = 1000;
    int i,j;
    boolean []prime=new boolean[limit+1];

    for( i=1;i<=limit;i+ +){
    prime[i]=true;

    if(i%2==0)
    prime[i]=false;

    if((i%3==0)||(i %5==0))
    prime[i]=false;

    prime[1]=true;
    prime[2]=true;
    prime[3]=true;
    prime[5]=true;

    if(prime[i]==false)
    continue;

    for( j=2;j<i;j++){

    if(i%j==0)
    prime[i]=false;

    }
    if(prime[i]==true)
    System.out.prin tln(i+" is_prime**");
    else
    System.out.prin tln(i+" no_prime");
    }
    }
    }
  • r035198x
    MVP
    • Sep 2006
    • 13225

    #2
    Originally posted by ladislav
    I made this program test prime.
    I want it improve I have idea but I don’t now how it insert in into program.
    Howe somebody else idea?


    My idea: if(prime[i]==true)
    i*i==false;
    Thank for your help


    public class testPrime{
    public static void main(String[] args) {

    int limit = 1000;
    int i,j;
    boolean []prime=new boolean[limit+1];

    for( i=1;i<=limit;i+ +){
    prime[i]=true;

    if(i%2==0)
    prime[i]=false;

    if((i%3==0)||(i %5==0))
    prime[i]=false;

    prime[1]=true;
    prime[2]=true;
    prime[3]=true;
    prime[5]=true;

    if(prime[i]==false)
    continue;

    for( j=2;j<i;j++){

    if(i%j==0)
    prime[i]=false;

    }
    if(prime[i]==true)
    System.out.prin tln(i+" is_prime**");
    else
    System.out.prin tln(i+" no_prime");
    }
    }
    }
    Now hold it right there.

    From here,
    Code:
     
    Now hold it right there. 
    public class testPrime{
    public static void main(String[] args) {
    int limit = 1000;
    int i,j;
    boolean []prime = new boolean[limit+1];
    for( i=2;i<=limit;i++){
    prime[i]=true;
     
     
    for( j=2;j<i;j++){
    if(i%j == 0)
    prime[i]=false;
    }
    if(prime[i]==true)
    System.out.println(i+" is_prime**");
    else
    System.out.println(i+" no_prime");
    }
    }
    }
    Go to

    and
    http://www.freevbcode.com/ShowCode.asp?ID=1059

    Hope you can follow the algorithms here because they were not written in java.

    Comment

    • ladislav
      New Member
      • Oct 2006
      • 17

      #3
      I want only discart multiple of prime numbers before second loop = i*i
      I don't know how to do it in array.

      Comment

      • maverick19
        New Member
        • Nov 2006
        • 25

        #4
        try to use this
        this gives the whole list of prime nos till the limil value
        Code:
        public static void main(String[] args) {
        		int length=1000;
        		boolean []prime=new boolean[length+1];
        		prime[0]=prime[1]=prime[2]=true;
        	for(int j=3;j<=length;j++)
        	{
        		prime[j]=true;
        		for(int k=2;k<j;k++)
        		{
        			if(j%k==0)
        			{
        				prime[j]=false;
        				break;
        			}
        		}
        		
        	}
        	for(int i=0;i<length;i++)
        	{
        		System.out.println(i+"   "+prime[i]);
        	}

        Comment

        • ladislav
          New Member
          • Oct 2006
          • 17

          #5
          Thank for your help.

          Comment

          Working...