Hjälp med Java
Hej, jag har ett problem som jag blir galen på. Uppgiften är att skriva ett program som kollar upp primtalspar till jämna tal. (Goldbachs hypotes).
Det var ett tag sedan jag höll på med Java och har precis kommit igång. Här kommer koden.
import java.util.Scanner;
public class primeCombo{
// Testa om inmatat tal är mindre än två eller ojämnt. Skapa variabler
public static int hittaKombinationer(int number){
if(number <= 2 || number%2 == 1){
System.out.println("Felinmatning, try again");
return 0;
}
int halfnumber = number/2;
int AntalKombinationer = 0;
// Anropar från metoden primtal. Om i är ett primtal och number - i är ett primtal så skapar det en kombination.
//Testar upp till hälften av talet för att undvika dubbla kombinationer.
for(int i=2;i<=halfnumber;i++){
if(primtal(i) && primtal(number-i)){
AntalKombinationer++;
System.out.println("Komination funnen: "+i+"+"+(number-i));
}
}
// Returnerar Antalet funna kombinationer till metoden.
return AntalKombinationer;
}
public static boolean primtal(int number){
// Letar efter primtal i. Hittas detta returneras true till metoden ovan.
// Om i inte är ett primtal returneras false och nästa värde på i testas.
for (int i=2; i<number; i++) {
if (number%i==0) {
return false;
}
}
return true;
}
public static void main(String[] args){
// Inmatning användare
Scanner in = new Scanner(System.in);
int indata = 1;
// Loopar tills användaren skriver in 0
while (indata != 0){
System.out.print("Mata in ett jämnt tal >2: ");
indata = in.nextInt();
System.out.println( "Antal olika kombinationer : " + hittaKombinationer(indata) + "\n" );
}
}
}
Programmet fungerar fint och utskriften blir till exempel
Mata in ett jämnt tal >2
*matar in ex 10*
Kombination funnen 3+7
Kombination funnen 5+5
Antal kombinationer 2
Saken är den att jag egentligen inte vill ha antal kombinationer, men kommer inte på hur jag ska få programmet att fungera korrekt om jag inte vill returnera detta värdet i metoden
public static int hittaKombinationer(int number)
Utskriften jag söker är:
Mata in ett jämnt tal >2
*matar in ex 10*
Kombination funnen 3+7
Kombination funnen 5+5
Det går även bra att skriva programmet med endast for loopar och if satser, men efter några timmar har jag inte kommit på hur jag ska strukturera upp programmet på det sättet och frågar därför efter hjälp.
Kort och gott
- Hitta ett sätt att köra programmet korrekt utan att behöva returnera ett värde till
public static int hittaKombinationer(int number)
eller
skriva programmet endast med hjälp av forloopar och if-satser.
Mvh.