寻找素数是常见的问题,下面是通过Java的方法找出第n个素数的方法。
先定义q为输入的你想找到的第几位素数,然后先让a自增(从2开始直至找到q这个数字),通过定义的b与a的关系(检查从2到该数字的平方根的每个数字是否能整不是素数。
下面给出找出第n个素数的具体代码:
public class Main {
public static void main(String[] args) {
java.util.Scanner as = new java.util.Scanner(System.in);
System.out.println("请输入你想找到第哪一个素数:");
int q = as.nextInt();
int i = 1;
int a = 1;
while (i < q){
a++;
for (int b = a -1;b > 1;b--){
if(a%b == 0){
break;
}
else if (b == 2){
i++;
}
}
}
System.out.println(a);
}
}
示例输入:123
运行结果:
下面给出判断素数及找出其公因数的方法:
public class Main {
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
int number = s.nextInt();
System.out.println("Let's check if " + number + " is a prime number.");
for (int divisor = 2; divisor < number; divisor++)
{
int remainder = number % divisor; //The modulo operator gives the remainder of the division involved.
if (remainder == 0)
{
System.out.println("The number is not prime since it is divisible by " + divisor + ".");
break; //Exit the for loop
}
if (divisor == number-1)
System.out.println("The number is prime!");
}
System.out.println("\nLet's check how many factors it has.");
int factor = 2;
while (factor < number)
{
int remainder = number % factor; //The modulo operator gives the remainder of the division involved.
factor++;
if (remainder != 0)
{
continue; //Proceed to the next iteration of the loop, ignoring the rest of this iteration.
}
System.out.println(factor-1 + " is a factor of " + number +'.');
}
System.out.println("1 is a factor of "+number+'.');
System.out.println(number+" is a factor of "+number+'.');
}
}
示例输入:64
运行结果:
示例输入:137
运行结果:
新人小白,学习Java时间较短,有问题望指正!万分感谢!