Ну, я делаю программу на С ++, и мне нужно найти числа с общими факторами из массива. Я уже делаю это наивным образом.Найти факторы
int commonFactors(int p, int q){
int count = 0;
if(q > p){
for(int i = 2;i < q;i++){
if((q%i==0)&&(p%i==0)){
count++;
break;
}
}
}
else if(p > q){
for(int i = 2;i < p;i++){
if((p%i==0)&&(q%i==0)){
count++;
break;
}
}
}
else{
count = 1;
}
return count;
}
Хорошо, тогда мои тайм-ауты кода для больших входов. Мой диапазон ввода от 1 до 1000000 для любого элемента массива. Есть ли подсказка о том, как его эффективно вычислить?
У меня есть идея проверить только основные факторы, но я беспокоюсь о диапазоне, в котором можно проверить.
Это хороший фрагмент кода. Работает ли так, как вы хотите? Если нет, что происходит? Не удается ли построить? Не дает ли он правильных результатов? *** Каков ваш вопрос? *** –
Это таймауты !! @JoachimPileborg –
Ну, мои входы от 1 до 10000000. Значит, что-нибудь подсказывает? –