Как я могу узнать, кратно ли одно число другому? - PullRequest
0 голосов
/ 22 октября 2010

Я пытался использовать 6% 2, но он всегда давал значение 2, а не 0. Почему и как я могу найти решение этой проблемы?

Ответы [ 3 ]

3 голосов
/ 22 октября 2010
if(!(y%x))
{
...
}

В вашем случае !(6%2) вернет true .

(ответ очень похож на оригинал в вопросе)

1 голос
/ 22 октября 2010

Я предполагаю, что вы хотите выяснить, имеет ли Y = kX целочисленные значения k для заданного X, так что Y = 5, X = 3 терпит неудачу (k равно 5/3), но Y = 6, X= 2 прохода (k точно 3).Вы счастливы, что k является либо положительным, либо отрицательным.

Таким образом, использование остатка Y X == 0 является хорошим тестом.Кроме того, будьте осторожны с отрицательными остатками (например, Y% 2 == 1, поскольку проверка на нечетность не выполняется для отрицательных чисел, для уверенности используйте Y% 2! = 0)

Пример кода в Java

public class Example {

  public static void main(String[] args) {
    System.out.println(isIntegerFactor(5,3));  // k is not an integer
    System.out.println(isIntegerFactor(6,3));  // k is 2
    System.out.println(isIntegerFactor(-6,-3)); // k is 2 
    System.out.println(isIntegerFactor(-6,3)); // k is -2
    System.out.println(isIntegerFactor(6,-3)); // k is -2
  }

  public static boolean isIntegerFactor(int y, int x) {
    return (y % x) == 0;
  }

}
0 голосов
/ 22 октября 2010
bool prime = PrimeTool.IsPrime(input_Number);
        if (!prime)
        {
            Console.Write("multiple of other number");
            Console.WriteLine(i);
        }
...