请问我哪有问题,为什么输出结果不对,我感觉没有问题了呀

我的代码;
#include
int main(){
int i,j;
scanf("%d %d",&i,&j);
int n=1;
while(i
if(j % i==0){
printf("%d",j);
}
else if(n % i==0&&n % j==0){
printf("%d",n);
}
n++;
}
return 0;
}
任务描述
两个自然数的公共倍数中最小的那个数被称为它们的最小公倍数。

编程输入两个自然数,输出它们的最小公倍数。

输入样例:
36 24
输出样例:
72

#include<stdio.h>
int main(){
int i,j;
scanf("%d %d",&i,&j);
int n=1;
while(i<j){
if(j % i==0){
printf("%d",j);
}
else if(n % i==0&&n % j==0){
printf("%d",n);
}
n++;
break;
}
return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int n,m,i;
    cin>>n>>m;
    i=max(n,m);
    while(1)
    {
        if(i%n==0&&i%m==0)break;
        i++;                //硬核自加
    }
    cout<<i<<endl;
}