Results 1 to 8 of 8
 02282011, 03:34 AM #1Member
 Join Date
 Feb 2011
 Posts
 2
 Rep Power
 0
generating prime numbers...using an array
I am trying to complete a class assignment and am currently unsuccessful...the assignment requires:
This program requires that you find all of the primes between 1 and some number that you allow the user to input.
Fill an array with the consecutive integers between 1 and the top number.
Identify 2 as the first prime and then remove all numbers that are evenly divisible by 2 (use modulus function).
Go to the next number remaining on the list (the next prime); now remove all of the numbers divisible by it.
Continue until you have only prime numbers in your list. When can you stop?
Now, write a Java program that generates all of the primes between 2 and some upper bound (greater than 50) that you allow the user to enter. As intermediate data, print one line for each divisor you eliminate along with the numbers eliminated. For example:
2: 4 6 8 10 12 14 16 18...
3: 9 15 21 27
so far I have the following code, but it isn't working...
Scanner keyboard = new Scanner(System.in);
int size;
int sentinel = 0;
int [] numberArray;
System.out.println("Enter the size of the array from 1 to 100:");
size = keyboard.nextInt();
numberArray = new int[size];
//Fill the array.
for (int i=0; i<size; i++)
{
numberArray[i]=i+1;
}
//Identify 2 as the first prime number and then remove all numbers that are evenly divisible by 2
int baseNumber = 2;
for (int i=1; i<size; i++)
if (numberArray[i] != sentinel)
{
int base = numberArray[i];
System.out.print(base + ": ");
if (numArray[i]%baseNumber == 0)
{
System.out.print(numberArray[i] + " ,");
numberArray[i] = sentinel;
}
}
}
}
 02282011, 06:02 AM #2Member
 Join Date
 Feb 2011
 Posts
 18
 Rep Power
 0
I dont know if its just me but i found your code quite confusing.
here is how i would do it:
Java Code:Scanner keyboard = new Scanner(System.in); int size; int [] numberArray; int [] out; System.out.println("Enter the size of the array from 1 to 100:"); size = keyboard.nextInt(); numberArray = new int[size]; //Fill the array. for (int i=1; i<size; i++) { numberArray[i]=i; } numberArray[1] = 1; //Identify 2 as the first prime number and then remove all numbers that are evenly divisible by 2 //start the for loop with 2 for (int i=2; i<size; i++){ //if the number has not already been discluded if(numberArray[i] != 1){ for(int j = 0; j < size; j++ ){ // if the number is a multiple of another number if(numberArray[j]%numberArray[i] == 0 && numberArray[j] != numberArray[i] ){ //disclude it numberArray[j] = 1; } } } } //disclude 2 numberArray[2] = 1; //print for(int i = 1; i < size; i ++){ if(numberArray[i] != 1) System.out.print(numberArray[i] + ", "); }
 02282011, 04:47 PM #3Member
 Join Date
 Feb 2011
 Posts
 2
 Rep Power
 0
thank you very much! how do i get the code to output the excluded numbers as well...we are supposed to output the number: its excluded multiples
ex:
2: 4 6 8 10 etc
 02282011, 05:21 PM #4
Crossposted: trying to generate prime numbers
How to Ask Questions the Smart Way
Static Void Games  GameDev tutorials, free Java and JavaScript hosting!
Static Void Games forum  Come say hello!
 03012011, 05:04 AM #5Member
 Join Date
 Feb 2011
 Posts
 18
 Rep Power
 0
you can change the code to make it more similar to yours and make it print as you go or you can edit the printing part on the pecie of code i made so it prints the multiples.
its just a simple matter of inserting another 'for' loop and multiplying the number by the increasing variable.Last edited by mr_guy; 03012011 at 05:23 AM. Reason: Edit becuse of sunde887's post below
 03012011, 05:14 AM #6
 Join Date
 Jan 2011
 Location
 Richmond, Virginia
 Posts
 3,069
 Blog Entries
 3
 Rep Power
 11
Please don't spoon feed. What does he learn from you providing the source code? Give him pseudocode or push him in the right direction, this way he will learn to solve problems more efficiently, with less help from others.
Also, the fill the array code will leave the first spot in the array null
it should be
Java Code:for(int i = 1; i <= size; i++ //or for(int i = 0; i < size; i++){ numArray[i  1] = i; }
Java Code:num[0] == 0 num[1] == 1 num[2] == 2 ... num[10] == 9
Last edited by sunde887; 03012011 at 05:21 AM.
 03012011, 05:58 AM #7
This is performing the Sieve of Eratosthenes and I find it much easier to use an array of booleans.
 03012011, 06:30 AM #8
 Join Date
 Jan 2011
 Location
 Richmond, Virginia
 Posts
 3,069
 Blog Entries
 3
 Rep Power
 11
Similar Threads

Prime Number  System print all the prime numbers ...
By pinkdreammsss in forum New To JavaReplies: 20Last Post: 04262009, 01:50 AM 
prime numbers program
By i contra i in forum New To JavaReplies: 9Last Post: 01152009, 08:22 AM 
Prime numbers
By tercius in forum New To JavaReplies: 3Last Post: 05042008, 06:05 AM 
Prime numbers
By gapper in forum New To JavaReplies: 3Last Post: 02072008, 11:09 AM 
generating random numbers in a 5x5 array.
By acidacid in forum New To JavaReplies: 3Last Post: 08142007, 03:44 AM
Bookmarks