考试的时候我写的代码竟然一直超时,直接丢了9分,哎
上代码,这是正确的
#include <stdio.h>
int main()
{
int m,n,i,min=0,a,b;
scanf("%d %d",&m,&n);
if(m>n) min = n;
else min = m;
for(i=1;i<=min;i++)
{
if(m%i==0 && n%i==0)
{
a = i;
}
}
for(i=m*n;i>=min;i--)
{
if(i%m==0 && i%n==0)
{
b = i;
}
}
printf("%d %d",a,b);
}
卧槽,我知道我哪里错了,下面的是错误代码!!!!!!!!
#include<stdio.h>
int main()
{
int m,n,p,q;
scanf("%d%d",&m,&n);
if(m==n){
printf("%d %d",m,n);
return 0;
}
int min=m,max=n;
if(m>n){
max=m;
min=n;
}
int i;
while(3>2){
i=min;//这里应该写在外面(欲哭无泪啊)
if(m%i==0){
if(n%i==0){
p=i;
break;
}
}
i--;
}
while(3>2){
i=max;//这里也一样应该写在外面
if(i%m==0){
if(i%n==0){
q=i;
break;
}
}
i++;
}
printf("%d %d",p,q);
return 0;
}