2017-02-21 13 views
0

의 주어진 집합을 찾을 수 있습니다. 나는 모든 주요 요소를 얻을 수 있습니다. 하지만 나는 어떻게 조합 된 배열을 만들어 내는지 모릅니다. 그런 다음 모든 순열을 찾으십시오.다른 일반적인 나눌 수에게 나는 기본적으로 자바 스크립트를 사용하여 비디오에서 무엇을 해결하기 위해 노력하고 번호</p> <p>의 주어진 찾기 모든 일반적인 나눌 수에게 divisibles

https://youtu.be/zWcfVC-oCNw?t=4m32s

예컨대 X은 9와 24로 나눌 수 있습니다. 따라서 X도 ....로 나눌 수 있습니까?

function primeFactors(num) { 
    let n = num 
    let divisor = 2; 
    let primes = []; 
    while (divisor <= num) { 
     if (num % divisor === 0) { 
      primes.push(divisor); 
      num /= divisor; 
     } else {  
      divisor++; 
     } 

    } 

    return primes; 
} 

console.log(primeFactors(9)) // [3, 3] 
console.log(primeFactors(24)) //[2, 2, 2, 3] 

// All combinations of [2, 2, 2, 3, 3] are valid answers 
+2

[LCM] (a https://en.wikipedia.org/wiki/Least_common_multiple) , b) = a * b/[GCD] (https://en.wikipedia.org/wiki/Greatest_common_divisor) (a, b) – Phylogenesis

+0

@Phylogenesis hmmm 공통 배수를 찾으려고하지 않습니까? 예를 들어 2 * 2 * 2 = 8이 유효한 답입니다. 나는 X가 9와 24로 나눌 수 있다면 그것은 또한 8로 나눌 수 있다고 말하는거야? 그러나 처음에 8이 유효한 대답인지 나는 모른다. – MonteCristo

+0

그것은 복잡하기는하지만 기본적으로 모든 제수를 주력 형태로 분해합니다. 9 = 3^2, 24 = 2^3 * 3^1. 이제는 소수의 모든 지수에 대해 최대 값을 취하십시오. 따라서 2의 경우 최대 지수는 3이고, 3의 경우 최대 지수는 2, 5의 경우 최대 지수는 0입니다. 이제 지수의 가능한 모든 값을 0에서 반복합니다 각 프라임 당 최대 값. 모든 그러한 선택은 X의 분명한 제수를 산출합니다. 모두 제로 지수는 당신에게 제수 1을 제공합니다. 제수 1은 계산 방법에 따라 제압 할 수 있습니다. –

답변

0

Java의 솔루션.

/* 
* Example solution to finding all possible numbers divisible by two different numbers. 
* In response to stack overflow question at the following URL: 
* https://stackoverflow.com/questions/42368860/find-all-common-divisible-numbers-given-set-of-divisibles 
* Author James Pata 
* Date 01/05/18 
*/ 

public class primeFactorization 
{ 
    public static void main(String[] args) 
    { 
     //CHOOSE ANY RANGE OF NUMBERS (>= 1 only) 
     int testRange = 216; 

     //CHOOSE ANY Two Numbers to Compare Divisibility Similarities 
     int number1 = 9; 
     int number2 = 24; 

     System.out.println("All numbers divisble by either " + number1 + " and " + number2 + " are: \n");  

     /* 
     *The for loop will iterate through the testRange of numbers to be analyzed starting at 1. 
     *The for loop has two local variables called tempVariabel that holds the remainder. 
     *These tempVariables will be used to determine if divisible, and will then print corresponding confirmation 
     * The final else statement was excluded intentionally to prevent the index variable, testNumber, from printing 
     */ 
     for(int testNumber = 1; testNumber <= testRange; testNumber++) 
     { 

     int tempVariable1 = testNumber%number1; 
     int tempVariable2 = testNumber%number2; 

     if(isNumberDivisibleBy(number1, testNumber) && isNumberDivisibleBy(number2, testNumber)) { 
      System.out.println(testNumber + " is divisible by both " + number1 + " and " + number2); 
      } else if(isNumberDivisibleBy(number1, testNumber)) { 
        System.out.println(testNumber + " is divisible by " + number1); 
       } else if(isNumberDivisibleBy(number2, testNumber)) { 
        System.out.println(testNumber + " is divisible by " + number2); 
        } 
     } 

    }//endmain 

    /* 
    *The isNumberDivisbileBy takes two parameters, and returns true if 
    *parameter testNumber is evenly divisible by number of choosing. 
    *(testNumber is determined later determined by the for loop in the main method.) 
    */ 
    public static boolean isNumberDivisibleBy(int number, int testNumber) 
    { 
     if (testNumber%number == 0) { 
     return true; 
     } else { return false; } 
    } 

}//endclass 

결과 : 당신은 비교하기 위해 두 개의 선택된 숫자 이하로 떨어질 번호를 포함하려는 경우

All numbers divisble by either 9 andS 24 are: 

9 is divisible by 9 
18 is divisible by 9 
24 is divisible by 24 
27 is divisible by 9 
36 is divisible by 9 
45 is divisible by 9 
48 is divisible by 24 
54 is divisible by 9 
63 is divisible by 9 
72 is divisible by both 9 and 24 
81 is divisible by 9 
90 is divisible by 9 
96 is divisible by 24 
99 is divisible by 9 
108 is divisible by 9 
117 is divisible by 9 
120 is divisible by 24 
126 is divisible by 9 
135 is divisible by 9 
144 is divisible by both 9 and 24 
153 is divisible by 9 
162 is divisible by 9 
168 is divisible by 24 
171 is divisible by 9 
180 is divisible by 9 
189 is divisible by 9 
192 is divisible by 24 
198 is divisible by 9 
207 is divisible by 9 
216 is divisible by both 9 and 24 

, 그 기능을 포함하려면이 코드를 확장하기 쉬운 것입니다. 그러나 수학적으로 두 주어진 숫자보다 작은 숫자는 9 또는 24로 나눌 수 없다고 주장 할 것입니다. 결과는 항상 부적절한 부분이 아니므로 십진수는 1보다 작습니다.

그러나 논리를 재정렬하면 "어떤 숫자가 INTO 9 또는 24로 나뉘어 진다고 말합니까?"라는 논리보다는 그런 종류의 논리에 동의 할 수 있습니다. 그리고 다시 한 번 확대하면 어렵지 않을 것입니다. 그러나, 나는 한 가지만하고 다른 것은 하나만 해보기 위해 나의 기능을 정리하려고한다. 자바에서는 자바 스크립트와 다른 명확한 코딩 방법이 가장 많이 사용됩니다.

귀하의 질문에 대한 답변이 도움이되지 않았다면 정확하게하고 싶은 부분을 더 자세히 설명해주십시오. 나는 코드를 다시 작성한 다음 자바 스크립트로 번역한다. (자바 스크립트에서는 괜찮은 편이지만 자바에서는 괜찮은 편이다.)