Le problème consiste à vérifier un nombre aléatoire n
peut être la somme de 2 nombres premiers aléatoires. Par exemple,
si n=34, les possibilités sont (3+31), (5+29), (17+17)...
Jusqu'à présent, j'ai réussi à enregistrer les nombres premiers dans le tableau, mais je n'ai aucune idée de la manière dont je pourrais vérifier si n
est la somme de 2 nombres premiers.
Voici une partie de mon code :
public static void primeNumbers(int n) {
int i = 0, candidate = 2, countArray = 0, countPrime = 0;
boolean flag = true;
while (candidate <= n) {
flag = true;
for (i = 2; i < candidate; i++) {
if ((candidate % i) == 0) {
flag = false;
break;
}
}
if (flag) {
countPrime++;
}
candidate++;
}
int[] primeNumbers = new int[countPrime];
while (candidate <= n) {
flag = true;
for (i = 2; i < candidate; i++) {
if ((candidate % i) == 0) {
flag = false;
break;
}
}
if (flag) {
primeNumbers[countArray] = candidate;
}
candidate++;
countArray++;
}
for (i = 0; i <= primeNumbers.length; i++) {
}
}
Tout d'abord, j'ai compté le nombre de nombres premiers compris entre 1-n afin de pouvoir déclarer et initialiser mon tableau de nombres premiers. Ensuite, j'ai enregistré les nombres premiers dans le tableau. Mais maintenant, je n'ai aucune idée de la façon dont je pourrais vérifier si n
est la somme de 2 nombres premiers.