这是我打印Prime no的代码。在给定范围内, 如何根据时间复杂度优化它。 以及如果用户在输入中给出一个字符,如何处理。目前,如果我在任何输入中输入一个字符,则显示此
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextLong(Scanner.java:2265)
at java.util.Scanner.nextLong(Scanner.java:2225)
at NthPrimeNo.main(NthPrimeNo.java:23)
这是代码
public class NthPrimeNo {
public static void main(String[] args) {
long j,k,t=0;
int count =0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the starting point of the range: ");
long N1 = sc.nextLong();
System.out.println("Enter the Ending point of the range: ");
long N2 = sc.nextLong();
System.out.print("Enter n to compute the nth prime number: ");
long nth = sc.nextLong();
if((nth>0) && (N2>N1) && (N1<1500000) && (N2<1500000)) {
for(long i=N1;i<=N2;i++) {
for( j=1,k=0;j<=i;j++) {
if(i%j==0)
k++;
}
if(k==2) {
t++;
if(t==nth) {
System.out.println(i);
count=1;
break;
}
}
}
if(count==0) {
System.out.print("\n no prime number is present at this index");
}
} else {
System.out.println("Invalid Input");
}
}
}
答案 0 :(得分:0)
你可能想要接受字符而不是长片,并验证它们是否可以制成长(Long.parseLong()
或类似的东西)