oj报错超时,求大佬帮忙改改
#include <stdio.h>int main()
{
long int t;
int m, n;
while (scanf("%d %d",&m,&n) != EOF)
{
for (t = m; t++;)
{
if (t%m==0&&t%n==0)
{
printf("%d", t);
break;
}
}
}
return 0;
}
实质上是输入m和n,求最小公倍数
谢谢大佬,膜拜 #include <stdio.h>
int main(void)
{
int d , i , j , m , n , t ;
char s ;
for(;;) {
gets(s) ;
if(s) {
sscanf(s , "%d%d" , & m , & n) ;
for(d = 1 , i = m , j = n , t = 2 ; t < i + 1 && t < j + 1 ;) {
if(! (i % t) && ! (j % t)) {
i /= t ;
j /= t ;
d *= t ; // d 是 m、n 的最大公约数
} else {
t ++ ;
}
}
if(d > 1) printf("%d\n\n" , m * n / d) ;
else printf("None\n") ;
} else {
break ;
}
}
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
99 88
792
6 24
24
96 112
672
D:\00.Excise\C> 你这个比我的还复杂
页:
[1]