Java p=3aa+3a+1 p为素数,求a
Java p=3aa+3a+1 p为素数,求a
Java p=3aa+3*a+1 p为素数,求a
public class PrimeFinder {
public static void main(String[] args) {
int a = 1;
int p = 0;
while (true) {
a++;
int num = 3*a*a + 3*a + 1;
if (isPrime(num)) {
break;
}
}
System.out.println("a = " + a);
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
a = 2 p=19
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int p = scanner.nextInt();
int delta = 12 * p - 3;
int a = (int)Math.sqrt(delta / 3);
if (delta % 3 == 0 && isPrime(p) && 3 * a * a + 3 * a + 1 == p) {
System.out.println(a);
} else {
System.out.println("No solution");
}
}
// 判断一个数是否为素数
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:你的问题是要解决如何使用Java编程语言,从给定的a值计算出相应的素数p值,其中p = 3 * a * a + 3 * a + 1是公式。这个问题可以通过以下几个步骤进行解决:
public static boolean isPrime(int n) {
if(n <= 1) {
return false;
}
for(int i = 2; i * i <= n; i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
这个函数用于判断一个整数n是否为素数。
public static int calculateP(int a) {
return 3 * a * a + 3 * a + 1;
}
这个函数用于计算给定a值的p值。
public static int calculatePrimeP(int a) {
int p = calculateP(a);
while(!isPrime(p)) {
p = calculateP(++a);
}
return p;
}
这个函数使用上述定义的两个函数来计算给定a值的素数p值。如果计算出的p值不是素数,则循环递增a值,直到计算出的p值是素数为止。
希望以上步骤可以帮助您解决这个问题。如果您有任何疑问,请随时联系我。