Một bài lập trình nhỏ !!!

Em có 1 bài lập trình sau, làm hoài không được:
tìm 2 số x,y sao cho: x * y= 133745639 (phải bằng số này).
Mong mọi người giúp em thuật toán!
VD cái thuật toán đơn giản nhất em nghĩ đến:

for (x=2;x<100000;x++)
{
for (y=2;y<100000;y++)
{
kq=xy;
if (kq=133745639)
{
cout<<"X= "<<x<<endl;
cout<<"Y= "<<y<<endl;
}
}
}
Post dạng text hơi khó nhìn! hi
khó khăn trong bài này là:
– khi em dùng lặp kép để x
y thì:

  • Nếu gán int cho x,y thì sẽ bị tràn bộ nhớ (int có 2 byte mà kết quả lớn hơn!).
  • Nếu gán float cho x,y thì máy sẽ tự làm tròn kết quả (lúc này kq= 133745640).
    ngoài ra 1 trong 2 số không được = 1 (đương nhiên rồi !).:smiley:
    Note:
    a. Nếu post kq thì A/C hãy test trước khi post, sợ nó ra =…40 !
    b. Ngoài ra, em muốn hỏi trong uit có ai yêu thích RE (Reverse Engineering) k? (chủ yếu Crack),
    nếu có thì cho làm quen, chia sẻ kt chứ học 1 mình khó quá, hi.:byebye:

for (x=2;x<100000;x++)
{
for (y=2;y<100000;y++)
{
kq=xy;*
if (kq=133745639)
{
cout<<"X= "<<x<<endl;
cout<<"Y= "<<y<<endl;
}
}
}
sao tự nhiên in ra x với y vậy nếu TH x=y thì in ra căn 2 của số kia chứ:beatbrick:

for (x=2;x<100000;x++)
{
for (y=2;y<100000;y++)
{
kq=x*y;
if (kq=133745639)//so sánh
{
cout<<"X= "<<x<<endl;
cout<<"Y= "<<y<<endl;
}
}
} 

So sánh thì 2 dấu bằng nha em.
Thử code này xem

for(int i = 2; i < 133745639; i++)
		if(133745639%i == 0)
		{
			cout<<i<<" & ";
			cout<<133745639/i<<endl;
		}

[QUOTE=11520034;197029]sao tự nhiên in ra x với y vậy nếu TH x=y thì in ra căn 2 của số kia chứ:beatbrick:[/QUOTE]
em dùng lặp kép, nếu x=y thì nó cũng in ra x,y chứ anh @@!

[QUOTE=10520306;197038]So sánh thì 2 dấu bằng nha em.
Thử code này xem

for(int i = 2; i < 133745639; i++)
		if(133745639%i == 0)
		{
			cout<<i<<" & ";
			cout<<133745639/i<<endl;
		}

[/QUOTE]
ặc ặc, bái phục !
thế mà em ko nghĩ ra, cám ơn nah nhiều !hi
vậy là qua đc Challenge lv.2 rồi!
http://www.osix.net/modules/geek/level.php?level=2