Member 11980555 Ответов: 1

Почему этот код не дает НОК двух чисел ?


Оставляя в стороне то, как мы вычисляем lcm способом gcd/(a*b), как немного изменить этот код таким образом, чтобы он давал специальный результат для вычисления lcm.

Что я уже пробовал:

void main()
{
	int a,b,i,v,lcm=1;
	printf("Enter two numbers");
	scanf("%d %d",&a,&b);
    
    	
	while(i<=(a*b))
	{
		if( a%i==0 && b%i==0)
		{
			v= i*lcm;
			i++;
			
		}
		else
		i++;
	
	}
	printf("The lcm is %d",v);
	getch();
}

Richard MacCutchan

Какую формулу вы пытаетесь использовать? Кроме того, вы не инициализировали i перед использованием его в вашем while петля.

1 Ответов

Рейтинг:
1

CPallini

Попробуй

#include <stdio.h>

int main()
{
  int a,b,lcm;
  printf("Enter two numbers\n");
  scanf("%d %d",&a,&b);


  lcm = a > b ? a : b;

  while(lcm <= (a*b) )
  {
    if( lcm%a==0 && lcm%b==0)
    {
      break;
    }
    ++lcm;
  }
  printf("The lcm is %d\n",lcm);
  getchar();
  return 0;
}