N的倍数(c语言问题)求助帮忙把pascal语言翻译成c语言 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/21 15:09:29
Problem
写一个程序,对于给定的一个自然数N(1≤N≤4999),和M个互不相同的十进制数字
X1,X2 ,…,XM (至少一个). 找出N的一个最小正的倍数,使得该倍数中没有X1,X2
,…,XM 之外的 其它数字。
Input
第一行为一整数K,表示有K组测试数据,每组测试数据第一行为整数N,第二行为整
数 M,接 下来M行 分别列出 数字 X1,X2..XM 。
Output
输出文件输出为这个倍数,如果无解输出0。
注:在所有的测试数据中答案都不会超过500位。

下面网址为参考资料
http://hi.baidu.com/sunbing1997/blog/item/83548a47548b8e006a63e55b.html
希望牛人帮忙把资料中的pascal语言翻译成c语言 谢谢,如果测试正确我会加分。
结果不太对

//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
#define MAXSTR 300

typedef struct{
long int last;
long int mo;
} num;
int main(void)
{
num a[5001];
long int qu[10001],x[11];
long int n,m,i,j,t,k,ii,r,f,mo;
char s[MAXSTR],s1[MAXSTR];
int found;

scanf("%ld",&k);
for (ii=1;ii<=k;++ii)
{
scanf("%ld\n%ld",&n,&m);
for (i=0;i<n;++i)
{
a[i].last=-1;
a[i].mo=0;
}
r=1;
f=0;
found=0;
for (i=1;i<=m;i++) scanf("%ld",&x[i]);
for (i=1;i<=m;i++)
if (x[i]&&x[i]%n==0) {
found=1;
printf("%ld\n",x[i]);
break;
}
if (!found) {
for (i=1;i<m;++i)
for (j=m;j>i;j--)
if (x[j]<x[j-1])