Programmering

C# Write a method IsPrime() that checks if a number (number > = 2) is prime or not.

14. januar 2023 af MelanieKM

Dette er hvad jeg har ind til videre, hvad mangler der for at den kan 'printe' true eller false? 

public static bool IsPrime(int value) 

      for (int i = 2; i < value; i++) 
     { 
            if (value % i == 0) 
                     return false; 
      } 
       return true; 

 


Brugbart svar (0)

Svar #1
14. januar 2023 af MandenMedMangeHatte

.


Brugbart svar (0)

Svar #2
14. januar 2023 af peter lind

Du skal teste om i2 er større end tallet du skal teste. Hvis dette er tilfælde er det et primtal.

ellers skal du addere 2 til i og gentage.

NB Jeg er ikke særlig stærk i C++, så der er måske noget jeg har misforstået.


Brugbart svar (0)

Svar #3
14. januar 2023 af eY47

Du har allerede lavet metoden der tjekker om din value er et primtal.

For at skrive til konsollen, kan du eksempelvis tjekke hvad metoden returnerer og derefter skrive i konsollen.

if (IsPrime(value))
    Console.WriteLine("True");
else
    Console.WriteLine("False");


Eller, hvis du vil holde det kort, så kan du også skrive følgende:

Console.WriteLine(IsPrime(value) ? "True" : "False");


Brugbart svar (0)

Svar #4
14. januar 2023 af peter lind

Der er ingen grund til at teste i for alle ulige tal mindre end det tal du tester. Hvis i2 > testtallet  og alle tal mindre end i er testet, er det et primtal.


Brugbart svar (0)

Svar #5
14. januar 2023 af Eksperimentalfysikeren

Din funktion virker korrekt sammen med kodestykkerne  i #3. Den er dog ret tidskrævende, hvis tallet er stort. Der er flere ting, der kan gøres. Den ene til er at benytte i2 i stopkriteriet. En anden er at starte med at teste med 2 udenfor løkken og så benytte "for (int i = 3; i < value; i+=2) ". 2 er nemlig de eneste lige tal, der er et primtal. Der er en yderligere forbedring. Ud over at springe de lige tal over kan man springe tal, der kan divideres med 3, over.


Skriv et svar til: C# Write a method IsPrime() that checks if a number (number > = 2) is prime or not.

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.