c语言定义n小于20,【求高人指错】求n个数(每个数小于100,n小于20)的最小公倍数....

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "stdio.h"

#include "string.h"

#include "math.h"

void sushu(int a[])

{

a[0]=1; a[1]=2; a[2]=3; a[3]=5; a[4]=7;

int i,j=5;

for(i=10;i<100;i++)

if(i%2==0||i%3==0||i%5==0||i%7==0)

continue;

else a[j++]=i;

}

void jiben(int b[][],int N)

{

int a[26];

static int C;

sushu(a);

int A,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,B;

for(A=0;A<7;A++) for(c=0;c<5;c++) for(d=0;d<3;d++) for(e=0;e<3;e++) for(f=0;f<2;f++)

for(g=0;g<2;g++) for(h=0;h<2;h++) for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++)

for(l=0;l<2;l++) for(m=0;m<2;m++) for(n=0;n<2;n++) for(o=0;o<2;o++) for(p=0;p<2;p++)

for(q=0;q<2;q++) for(r=0;r<2;r++) for(s=0;s<2;s++) for(t=0;t<2;t++) for(u=0;u<2;u++)

for(v=0;v<2;v++) for(w=0;w<2;w++) for(x=0;x<2;x++) for(y=0;y<2;y++) for(z=0;z<2;z++)

{

B=pow(a[1],A)*pow(a[2]*c)*pow(a[3]*d)*pow(a[4]*e)*pow(a[5]*f)*pow(a[6]*g)*pow(a[7]*h)*pow(a[8]*i)*pow(a[9]*j)*pow(a[10]*k)*

pow(a[11]*l)*pow(a[12]*m)*pow(a[13]*n)*pow(a[14]*o)*pow(a[15]*p)*pow(a[16]*q)*pow(a[17]*r)*pow(a[18]*s)*pow(a[19]*t)*pow(a[20]*u)*

pow(a[21]*v)*pow(a[22]*w)*pow(a[23]*x)*pow(a[24]*y)*pow(a[25],z);

if(B==N)

b[++C][26]={0,a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};

}

}

void zuizhi(int a[][],int min[],int max[])

{

int i,j;

for(j=0;j<26;i++)

{

max[j]=min[j]=a[0][j];

for(j=1;j<26;j++)

{

if(a[i][j]>max[j]) max[j]=a[i][j];

if(a[i][j]

}

}

}

void mult(char c[],char t[],int m)

{

int i,l,k,flag,add=0;

int s[100];

l=strlen(c);

for (i=0;i

s[l-i-1]=c[i]-'0';

for (i=0;i

{

k=s[i]*m+add;

if (k>=10) {s[i]=k%10;add=k/10;flag=1;}

else {s[i]=k;flag=0;add=0;}

}

if (flag)

{

do

{l=i+1;s[i]=add%10;add/=10;}

while(add);

};

for (i=0;i

t[l-1-i]=s[i]+'0';

t[l]='\0';

}

void main()

{

static int i,n,k,j=0,m,a[26],b[20][26],max[26],min[26];

char c[40],t1[40],t2[40];

scanf("%d",&n);

k=n;

sushu(a);

while(k!=0)

{

scanf("%d",&n);

jiben(b[j++],n);

k--;

}

zuizhi(b[20][26],min,max);

for(i=0;i<26;i++)

{

m=max[i]*a[i];

mult(c,t1,m);

}

for(i=0;i<26;i++)

{

m=max[i]*a[i];

mult(c,t2,m);

}

puts(t1);

puts(t2);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值