У меня есть функция isEvenSubset(12, 18)
, которая возвращает 1, если все четные множители 18 лежат в четных коэффициентах 12. Эта функция возвращает 1 для 12 и 18.
18 = 2,6 (четные факторы)
12 = 2,4,6 (четные коэффициенты)
Мой код для этого приведен ниже:
public static void main(String[] args) {
System.out.println(isEvenSubset(12, 18));
}
static int isEvenSubset(int m, int n) {
int a=0;
int factn=0;
for (int i = 1; i <n; i++) {
int factm=0;
for (int j = 1; j <m; j++) {
if(n%i==0&&i%2==0&&factm!=0){
factn=i;
System.out.println(factn+" "+factm);
if(factn==factm){
a=1;
}
}
if(m%j==0&&j%2==0){
factm=j;
}
}
}
return a;
}
Результат не такой, как ожидалось. Я запутался, где в коде я должен проверить factn==factm
. Может кто-нибудь дать мне подсказку, подходит ли здесь использование внутреннего и внешнего цикла, или я должен искать какой-либо другой подход.