Cod sursa(job #121274)

Utilizator omu_salcamtache tudor omu_salcam Data 8 ianuarie 2008 10:23:54
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<string.h>
long ok,a,b,c,vv,mult,n,m,i,j;
int v[1111],cv[1111];
FILE *f1,*f2;
void adunare(){
long mem;
i=vv-1;
mem=0;
while(mem || i<m+vv){
	i++;
	c=v[i]+cv[i-vv+1]+mem;
	v[i]=c%10;
	mem=c/10;
}
if(i>n){
	n=i;
}
}
int verificare(){
for(i=n;i>0;i--){
	if(v[i]!=0 && v[i]!=1){
		return i;
	}
}
return 0;
}
long cmmdc(){
long c,d;
c=a;
d=b;
while(c!=d){
	if(d>c){
		d=d-c;
	}
	else{
		c=c-d;
	}
}
return c;
}
long cmmmc(){
long div;
div=cmmdc();
return a/div*b;
}
int main(){
f1=fopen("multiplu.in","r");
f2=fopen("multiplu.out","w");
fscanf(f1,"%ld%ld",&a,&b);
mult=cmmmc();
c=mult;
while(c){
	m++;
	v[m]=c%10;
	cv[m]=c%10;
	c=c/10;
}
n=m;
while(vv=verificare()){
	if(vv<=m){vv=m;}
	vv=vv-m+2;
	adunare();
}
for(i=n;i>0;fprintf(f2,"%d",v[i]),i--);
return 0;}