任何人都可以帮我确定我的代码中的缺陷吗?

时间:2018-04-18 11:38:23

标签: c

我想将lcm的1到20计算。这段代码适用于1到
    10,但是当我使用相同的代码1到20时,输出是232792237。     正确的输出是232792560.我被卡住了。

C程序确定lcm为1到20

#include<stdio.h>
#include<math.h>
#define MAX 1000
int main()
{
   int a,z,i,j,b[MAX],k=0,count=0,l,p,n=1,limit,m=0;
   printf("Enter two numbers");
   scanf("%d%d",&a,&z);
   l=z;
   /*Storing prime numbers in array*/
   for(i=a+1;i<=z-1;i++)
   {
       for(j=2;j<i;j++)
       {
          if(i%j==0)
          break;
       }

       if(j==i)
       {
          b[k]=i;
          k++;
          count++;
       }  
    }
    limit=sqrt(l);

    /*Determining the smallest multiple*/
    while(b[m]<=l)
    {
       p=1;
       if(b[m]<=limit)
          p=floor(log10(l)/log10(b[m]));
       n=n*pow(b[m],p);
       m++;
       printf("%d\n",n);
   }
   return(0);
}

0 个答案:

没有答案