求大神帮忙写下这几道题的代码,大神快帮帮萌新吧

Description(数论)
两个数a, b求a, b的最小公倍数。
Input
输入a, b(1<=a, b<=1000000)
Output
输出a, b的最小公倍数。
Sample Input
1000000 9999999
Sample Output
999999000000

最小公倍数:

include < stdio.h>

typedef __int64 Elem;
Elem gys(Elem m,Elem n);
void main(){
Elem a[2];
int i;
for(i=0;i do{
printf("请输入第%d个数(>2)",i+1);
scanf("%I64d",&a[i]);
while(getchar()!='\n');
}while(a[i] printf("%I64d 与 %I64d 的最小公倍数为:\n%I64d",a[0],a[1],a[0]*a[1]/(gys(a[0],a[1])));
getchar();
}
Elem gys(Elem m,Elem n)//辗转相除法求mn的最大公因数,m&&n!=0
{
Elem A,B;
if(n>m)
{
A=m;m=n;n=A; //保证m>n
}
while((B=m%n)!=0)
{
m=n;n=B;
}
return n;
}

在看下这个题吧,Description
现在有一行括号序列,请你检查这行括号是否配对。
Input
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符。
Output
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No。
Sample Input
3
[(])
(])
([])
Sample Output
No
No
Yes

E.二叉树(二叉树)
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 81 (38 users) Total Accepted: 36 (35 users) Special Judge: No
Description
由正整数 1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,
比如从10到根结点的路径是(10, 5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。
对于两个结点x和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1,y2, ... ,1)(这里显然有 x = x1,y = y1),
那么必然存在两个正整数i和j,使得从xi和yj开始,有 xi= yj,xi + 1= yj + 1,xi + 2= yj + 2,... 现在的问题就是,给定 x 和 y,要求 xi(也就是 yj)。

Input
输入只有一行,包括两个正整数 x 和 y,这两个正整数都不大于 1000。

Output
输出只有一个正整数 xi。

Sample Input
10 4
Sample Output
2

Description
给出一个n,请用深搜的方法输出1~n从小到大的全排列
Input
多组测试数据,每行输入一个n(1<=n<7)
Output
从小到大输出n的全排列
Sample Input
3
Sample Output
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

Description
你有一辆挖掘机,现在该你当司机。
知道某处有宝藏,最快几步能到达?
现在你站在0这个位置,每一步你可以开车的方式:
x+2,x-1,x*2(0=<x<500)
Input
多组测试数据,每组给出目标点位置x(0=<x<500)
Output
输出到达目标点的最小步数
Sample Input
45
Hint
8

http://m.blog.csdn.net/article/details?id=53548132 接上

第一题先用辗转相除法求出a, b的最大公约数,用a,b的乘积除以最大公约数就是最小公倍数了。

里面有你想要的,一个函数 反回a和b的最大公因数c= gys ()然后最小公倍数就是a*b/c这三个数的基本类型 是 __int64

~今晚回去都给你写下来

代码 已经发到你的私信里