2016-10-24 8 views
0

ここでは、numbers.iの配列の最低公倍数を見つけようとしていますが、LCMを見つけるのに最も大きな共通因子を使用する値を見つけるために次の式を使用しました。最低共通共通点を見つける

enter image description here

私のプログラムが正しくGCDを計算し、それは、それが与えるGCDを使用して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); 
} 
+1

GCDとLCMを参照してください? – user3528438

+1

期待される出力と実際の出力の例を示してください。 –

+3

'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}; ' –

答えて

0

これは役に立ちますか?またはfindGCDをできるだけ数回呼び出している間にGCDとLCMを計算するというあなたの目標はありましたか?

int main(){ 
    int arr[10]={10,20,30,40,50,60,70,80,90,100}; 
    int GCD=arr[0]; 
    int LCM=arr[0]; 
    int i; 

    for(i=1;i<sizeof(arr)/sizeof(arr[0]);i++){ 
     GCD = findGCD(GCD,arr[i]); 
     LCM = (LCM * arr[i])/findGCD(LCM, arr[i]); 
    } 

    printf("GCD IS %d AND LCM IS %d",GCD,LCM); 
} 
関連する問題