Я пробовал использовать 6% 2, но всегда указывал значение как 2, а не 0. Почему и как я могу получить решение?Как узнать, является ли одно число кратным другому номеру?
ответ
bool prime = PrimeTool.IsPrime(input_Number);
if (!prime)
{
Console.Write("multiple of other number");
Console.WriteLine(i);
}
Я не думаю, что он попросил этого @william. Он спрашивает, является ли 'y' кратным' x' (то есть, если 'y = kx' для некоторого целого' k'), а не если ** x ** имеет другие делители, кроме '1' и' x' –
Я dun получаю то, что вы имеете в виду. u сказал .. y = kx, x - простое число. так .. что такое k? – william
@william: Вы не можете использовать только номер/составной номер номера, чтобы определить, является ли он целым кратным некоторого другого числа. Пусть 'y = 8' и' x = 3'. 'y' не является простым, но его коэффициенты равны 1, 2, 4 и 8, поэтому 8 не кратно 3. В том же духе нет целого числа' k', которое бы удовлетворяло уравнению 'y = kx' , – BoltClock
if(!(y%x)) { ... }
В вашем случае !(6%2)
возвратит истинную.
(Ответ очень похож на оригинал в вопросе)
Я asuming, что вы хотите узнать, если Y = Kx имеет целые значения к для данного 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;
}
}
6% 2 равно 0, и этот метод является правильным, показать полный код - ошибка должна быть где-то в другом месте – Vladimir
извините, это было 5/3. очень жаль. – wolverine
Это означает, что ваш выход 2 правильный. ты не понимаешь по модулю? – imbaer