Pagini recente » Cod sursa (job #1625431) | Cod sursa (job #2000557) | Cod sursa (job #872479) | Cod sursa (job #144486) | Cod sursa (job #115574)
Cod sursa(job #115574)
#include <stdio.h>
#define in "multiplu.in"
#define out "multiplu.out"
#define NMAX 200000000
using namespace std;
typedef int INT;
INT cmmdc( INT a, INT b )
{
INT k = 0;
if ( a == 0 ) return b;
if ( b == 0 ) return a;
while ( (a&1) == 0 && (b&1) == 0 )
{
a >>= 1;
b >>= 1;
k++;
}
while ( a != b )//cel putin unul este impar
{
if ( (a&1) == 0 )
{
a >>= 1;
}
else if ( (b&1) == 0 )
{
b >>= 1;
}
//amandoua impare
else if ( a > b )
{
a = (a-b) >> 1;
}
else b = (b-a) >> 1;//diferenta lor este un numar par
}
return a << k;
}
int A, B;
int main()
{
freopen( in, "r", stdin );
freopen( out, "w", stdout );
scanf( "%d %d", &A, &B );
INT val = cmmdc(A,B);
val = A / val * B;
int i;
for ( i = 1; i < 100; ++i )
{
INT x = val;
x *= i;
bool ok = true;
while ( x )
{
int cif = x % 10;
if ( cif >= 2 )
{
ok = false;
break;
}
x /= 10;
}
if ( ok == true ) printf( "%ld\n", val*i);
}
return 0;
}