Andre fag

Lost

12. oktober 2007 af pa8n (Slettet)
Jeg skal lave et program i java, som kan følgende:
En metode således den tester om et tal er et primtal.
Den skal så give en liste og det specifikke interval af primtal.

Jeg er lost!

Brugbart svar (0)

Svar #1
12. oktober 2007 af kleif

Se om du kan blive lidt inspireret af dette:
http://cs.nyu.edu/courses/fall07/V22.0101-003/html/PrimeNumber.html

Svar #2
12. oktober 2007 af pa8n (Slettet)

Jeg mangler dette:
public void ListPrimes(int n, int m) {
int p = 2;
while(p < m && n < p) {
p = p + 1;
}

System.out.println("The length is " + primes.size() + p);
}

Svar #3
12. oktober 2007 af pa8n (Slettet)

hvad gør jeg galt Kleif?

Svar #4
12. oktober 2007 af pa8n (Slettet)

Jeg vil have primtallene mellem to tal og en liste af dem samt længden. (Dette kunne også vise primtalsørkner i givne tilfælde).

Kan du ikke en smart metode, så jeg kan definere p, som et primtal?

Brugbart svar (0)

Svar #5
12. oktober 2007 af stræber-pigen (Slettet)

public boolean isPrime(int n) {

if(n == 1){
return false;
}

int number = 2;


while(number <= n-1){

if(n % number == 0) {
return false;
}
number = number + 1;
}
return true;

}

Svar #6
12. oktober 2007 af pa8n (Slettet)

ja okay, men jeg mangler at færdiggøre stadig den metode, jeg viste i #2.

Brugbart svar (0)

Svar #7
12. oktober 2007 af kleif

Så skal du jo blot kalde din primtals-funktion inde i løkken:

public void ListPrimes(int n, int m)
{
ArrayList primes = new ArrayList();

int p = 2;
while(p < m && n < p) {
if(isPrime(p)
{
primes.add(p);
}
p = p + 1;
}

System.out.println("The length is " + primes.size() + p);
}

Brugbart svar (0)

Svar #8
12. oktober 2007 af kleif

Der mangler selvf. lige en slut-parantes ved:
if(isPrime(p))

Svar #9
12. oktober 2007 af pa8n (Slettet)

Tak Kleif :-)

Svar #10
12. oktober 2007 af pa8n (Slettet)

Det går galt, når jeg compiler.

import java.util.ArrayList;
public class PrimeTest
{
private ArrayList primes;

public PrimeTest() {

primes = new ArrayList();
}


public void test() {
int number = 0;
while(number primes = new ArrayList();

int p = 2;
while(p < m && n < p) {
if(isPrime(p)); {
primes.add(p);
}
p = p + 1;
}

System.out.println("The length is " + primes.size() + p);
}


}

Svar #11
12. oktober 2007 af pa8n (Slettet)

Fejlen er her:
private ArrayList primes;

Svar #12
12. oktober 2007 af pa8n (Slettet)

Så har jeg rettet primes = new ArrayList(); til
primes = new ArrayList();
men det hjælper ikke

Brugbart svar (0)

Svar #13
12. oktober 2007 af kleif

Hvis du har defineret 'primes' 1 gang, må du ikke gøre det igen.

public void ListPrimes(int n, int m) {

int p = 2;
while(p < m && n < p) {
if(isPrime(p)); {
primes.add(p);
}
p = p + 1;
}

System.out.println("The length is " + primes.size() + p);
}

Skriv et svar til: Lost

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.