# Finding nth prime number

Printable View

• 04-12-2010, 10:47 PM
dextr
Finding nth prime number
I am trying to write a code for a program that will find the n th prime number.As for example 7 is the 4th prime number,11 is the 5th.
The method will take argument as n,and it will find the nth prime number.But I am facing some difficulty with the code.The code doesnt terminate by itself and doesnt return the desired value.Someone please help me out.
Code:

public class Problem{

/**
* @param args
*/
public int findAns(int n){
int count=0;
int ret=0;
while(count<n){
for(int i=0;i<Integer.MAX_VALUE;i++){
if(ifPrime(i)){
count++;
}
ret=i;
}
}
return ret;
}
public boolean ifPrime(int num){
boolean b=false;
int i;
for (i=2; i < num ;i++ ){
int n = num%i;
if (n==0){
b=false;
break;
}
}
if(i == num){
b=true;
}
return b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Problem().findAns(10));
}

}

• 04-12-2010, 10:57 PM
Fubarable
Are you sure that you want both a for loop and a while loop here:
Code:

while(count<n){
for(int i=0;i<Integer.MAX_VALUE;i++){
if(ifPrime(i)){
count++;
}
ret=i;
}
}

Also, if you correct your indentation, it would make your code a lot easier for others to read, and would help you get more helpful answers. Best of luck.
• 04-12-2010, 11:42 PM
iluxa
your

for(int i=0;i<Integer.MAX_VALUE;i++){

will never terminate (well not until you went through all integers). instead, do

for(int i=0;count < n && i<Integer.MAX_VALUE;i++){

and you should be good to go. That's not to say the algorithm could not be improved...