Здесь я пытаюсь найти самый низкий общий кратный массива чисел. Я использовал следующую формулу, чтобы найти значение, которое использует наибольший общий делитель, чтобы узнать LCM.найти самый низкий общий множественный
Моя программа вычисляет НОД правильно, но когда дело доходит до выяснить, LCM с помощью НОД он дает неправильный LCM value.What может быть неправильным в моей logic.Any помощь была бы оценена.
#include<stdio.h>
int main(){
int arr[10]={10,20,30,40,50,60,70,80,90,100};
int GCD=findGCD(arr[0],arr[1]);
int LCM=(arr[0]*arr[1])/GCD;
int i;
for(i=2;i<sizeof(arr)/sizeof(arr[0]);i++){
int temp = GCD;
GCD = findGCD(temp,arr[i]);
LCM = (temp*arr[i])/GCD;
}
printf("GCD IS %d AND LCM IS %d",GCD,LCM);
}
int findGCD(int num1,int num2){
if(num2 == 0){
return num1;
}
if(num1%num2 == 0){
return num2;
}
return findGCD(num2,num1%num2);
}
НОД и LCM чего и что? – user3528438
Просьба показать пример ожидаемого и фактического вывода. –
'int arr [10] = {49,21,7,14,28,42,35,49,56,70,64};' должно быть 'int arr [11] = {49,21,7,14 , 28,42,35,49,56,70,64}; ' –