// iki sayının OKEK değeri en fazla iki sayının çarpımı olabilir. // (iki sayı aralarında asalsa bu durum gerçekleşir.) Bu yüzden // döngünün (sayi1 * sayi2)'ye kadar dönmesi yeterlidir.
for (i = 1; i <= sayi1 * sayi2; i ++) { if (i % sayi1 == 0 && i % sayi2 == 0) { // OKEK değeri her iki sayıya da tam olarak bölünür. // Bu durumun görüldüğü andaki i değeri iki sayının // ortak katlarının alabildiği en küçük değerdir.
printf (" OKEK : %d\n", i);
break; } }
// OBEB değeri, en fazla sayılardan büyük olanın değeri kadar // olabilir. (diğer sayının değeri bir ise.) Bu nedenle // döngünün başlangıç değeri olarak sayılardan büyük olanını // almak yeterli olacaktır.
(sayi1 > sayi2) ? i = sayi1 : i = sayi2;
for (; i > 0; i --) { if (sayi1 % i == 0 && sayi2 % i == 0) { // OBEB değeri her iki sayıya da tam olarak bölünebilir. // Bu durumun görüldüğü andaki i değeri iki sayıyı tam // olarak bölebilecek en büyük tam sayıdır.
arkadaşlar ben hallettim buldum ama okek kodlarında bir yanlışlık var galiba mesala 12 ve 15 sayılarını girdiğimde 1 buluyor.birde okek kodlarının sonuna return yazdığımda 1 gönsteriyor sadece return olmadığına tekrar tekrar 1,1,3 rakamlarını gösteriyor.ban direk okek değerini vermesini istiyorum lütfen yardım edin
int sayı1, sayı2, i; int okek = 1; int obeb=1; int değer = 2;
sayı1 = Convert.ToInt32(textBox1.Text);
sayı2 = Convert.ToInt32(textBox2.Text);
// okek
if (comboBox1.SelectedIndex==1) { for (i = 0; i < 100; i++) { if ((sayı1 % değer == 0) & (sayı2 % değer == 0)) { okek *= değer; } if (sayı1 % değer == 0) { sayı1 = sayı1 / değer; } if (sayı2 % değer == 0) { sayı2 = sayı2 / değer; }
if ((sayı1 == 1) & (sayı2 == 1)) break; if ((sayı1 % değer != 0) & (sayı2 % değer != 0)) { değer++; } MessageBox.Show("okek = "+okek.ToString()); //return; }
}
//okek
else if (comboBox1.SelectedIndex==0) { for (i = 0; i < 100; i++) { if((sayı1%değer==0)|(sayı2%değer==0)) { obeb *=değer; }
} else i++; } printf("girdiğiniz bu iki sayının okekini istiyorsanız 1 e mi obebini hesaplatmak istiyorsanız 2 e basınız..\n"); scanf("%d",&h); if(h==1) printf("okek(%d,%d)=%d dir\n",a,b,okek); else printf("obeb(%d,%d)=%d dir\n",a,b,obeb);
yine bir ilk google aramasında ilk linkte buldum, arayın önce biraz
kod C kodu ama eminim 2-3 düzeltme ile C# olur, onu da sen yapıver.
google araması :http://www.google.com.tr/search?hl=tr&q=ebob+okek+C%23&btnG=Google%27da+Ara&meta=
ilk sıra linki :http://www.mydesign.gen.tr/kod/120.html
< Bu mesaj bu kişi tarafından değiştirildi amras_tasartir -- 16 Ocak 2009; 22:12:10 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
lütfen yardım edin
int sayı1, sayı2, i;
int okek = 1;
int obeb=1;
int değer = 2;
sayı1 = Convert.ToInt32(textBox1.Text);
sayı2 = Convert.ToInt32(textBox2.Text);
// okek
if (comboBox1.SelectedIndex==1)
{
for (i = 0; i < 100; i++)
{
if ((sayı1 % değer == 0) & (sayı2 % değer == 0))
{
okek *= değer;
}
if (sayı1 % değer == 0)
{
sayı1 = sayı1 / değer;
}
if (sayı2 % değer == 0)
{
sayı2 = sayı2 / değer;
}
if ((sayı1 == 1) & (sayı2 == 1))
break;
if ((sayı1 % değer != 0) & (sayı2 % değer != 0))
{
değer++;
}
MessageBox.Show("okek = "+okek.ToString());
//return;
}
}
//okek
else if (comboBox1.SelectedIndex==0)
{
for (i = 0; i < 100; i++)
{
if((sayı1%değer==0)|(sayı2%değer==0))
{
obeb *=değer;
}
if (sayı1 % değer == 0)
{
sayı1=sayı1/değer;
}
if (sayı2 % değer == 0)
{
sayı2=sayı2/değer;
}
if((sayı1%değer!=0)&(sayı2%değer!=0))
değer++;
}
MessageBox.Show("obeb= "+obeb.ToString());
}
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
//klavyeden girilen iki sayini okekini ve obebini isteğe göre bulunuz...
#include <stdio.h>
main()
{
int sayi1,sayi2,okek=1,i=2,enbuyuk,a,b,obeb=1,h;
printf("bir sayi giriniz\n");
scanf("%d", &sayi2);
printf("bir sayi giriniz\n");
scanf("%d", &sayi1);
a=sayi1;
b=sayi2;
enbuyuk=sayi2*sayi1;
while(i<=enbuyuk)
{
if((sayi1%i==0)||(sayi2%i==0))
{
while(1)
{
if((sayi1%i==0)&&(sayi2%i==0))
{sayi2=sayi2/i, sayi1=sayi1/i, okek=okek*i,obeb=obeb*i;}
else if(sayi1%i==0)
{sayi1=sayi1/i, okek=okek*i;}
else if(sayi2%i==0)
{sayi2=sayi2/i, okek=okek*i;}
if((sayi1%i!=0)||(sayi2%i!=0)) break;
}
}
else
i++;
}
printf("girdiğiniz bu iki sayının okekini istiyorsanız 1 e mi obebini hesaplatmak istiyorsanız 2 e basınız..\n");
scanf("%d",&h);
if(h==1)
printf("okek(%d,%d)=%d dir\n",a,b,okek);
else
printf("obeb(%d,%d)=%d dir\n",a,b,obeb);
}
Bu mesaja 1 cevap geldi. Cevapları Gizle