2016-11-20 4 views
0

J'ai eu quelques problèmes en essayant de résoudre ce code que mon professeur m'a envoyé pour étudier. Je peux habituellement résoudre le problème isPrime et getPrime, mais mon problème réside dans la classe gcd. J'adorerais avoir un avis à ce sujet. Merci :) Désolé pour la mise en forme depuis que je suis nouveau sur le siteEssayer de comprendre la déclaration de classe et de méthode dans les classes util java

import java.util.*; 

public class Util3 
{ 
    public ??? getSmaller(???) 
    { 
    int smaller; 
    if (???) 
     smaller = ???; 
    else 
     smaller = ???; 

    return smaller; 
    } 

    public ??? gcd(??? a, ??? b) 
    { 
    int g, smaller; 

    smaller = ???(a, b); 
    g = smaller; 
    for (int i = ???; i >= 1; i++) { // from smaller to 1 
     if (a % i == 0 ??? ???) { 
     g = i; 
     ???; 
     } 
    } 

    return g; 
    } 

    public ??? isPrime(int p) 
    { 
    if (p < 2) 
     return false; 

    int i; 
    for (i = ???; i <= ???; i++) // from 2 to p-1 
     if (??? == 0) // if p is divisible by i 
     break; 

    if (i == ???) 
     return ???; 
    else 
     return ???; 
    } 

    public ??? getPrime(int n) 
    { 
    boolean b; 
    int p; 

    for (p = n+1; ; p++) { // n+1, n+2, ... 
     b = ???(p); // check if p is a prime number 
     if (???) 
     break; 
    } 

    return p; 
    } 
} 

Répondre

0

Vous pouvez utiliser une solution naïve:

public static int gcd(int a, int b) { 
    int current_gcd = 1; 
    for(int d = 2; d <= a && d <= b; ++d) { 
     if (a % d == 0 && b % d == 0) { 
     if (d > current_gcd) { 
      current_gcd = d; 
     } 
     } 
    } 
    return current_gcd; 
    } 

Ou un récursive:

public static int GCD(int a, int b) { 
    if (b == 0) { 
     return a; 
     } 
    } 
    return GCD(b, a % b); 
} 
+0

Merci pour la contribution! Qu'en est-il d'une méthode non statique? Cela fonctionne certainement beaucoup mieux mais où je suis actuellement dans l'unité n'a pas exigé une méthode statique impliquée dans la classe pour le moment. – Kowalchu1

+0

Il suffit de supprimer le mot-clé static et de créer une instance Util3 dans la méthode Main – Nooblhu