Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C'de iki başlangıç programcığı yazabilecek olan..?


Öne çıkan mesajlar

Mesaj tarihi:
Şu iki programı bir türlü yazamadım. Biri bir el atabilir mi acaba?

1. A perfect square is the square of an integer which itself is the square of another integer. For example 16 and 81 are perfect squares where as 49 is not. Write a C program that reads an integer number and determines the first perfect square larger than this number. Note that your C program should contain only the main body and the use of any mathematical function is forbidden.

2. Two positive integers m and n are considered to be relatively prime (aralarında asal) if there exists no inteher greater than 1 and divides them both. Write a C program that inputs two positive integers and displays a message stating that they are relatively prime. Otherwise, display a message that they are not relatively prime. Also, your program should repeat this process for 10 pairs of number.

Sample run:
Enter two positive integers: 8 , 4
8 and 4 are not relatively prime.

Enter two positive integers: 4 , 9
4 and 9 are relatively prime[signature][hline]
Quidquid latine dictum sit, altum viditur.
Mesaj tarihi:
ikincisi daha kolay gibi, birinciye dersten gelince bakarım yapan olmazsa;

2. :

#include
int main()
{
int num1, num2,i;
int k=0, s=0;
do {
scanf("%d %d", &num1, &num2);
for(i=2; i {
if(num1%i==0 && num2%i==0)
k=k+1;
else continue;
}
if(k!=0) printf("%d and %d are not relatively primen", num1, num2);
if(k==0) printf("%d and %d are relatively primen", num1, num2);
s++;
}while(s<10);
printf("SONn");
return(0);
}


umarım hata yoktur...[signature][hline]sadece ölüm ...
anlam bulur gözlerinde ...
Mesaj tarihi:
1. :

#include
int main()
{
int num, i, j;
int k=0;
scanf("%d", &num);
num=num+1;
while(k==0)
{
for(i=2; i {
if(i*i==num)
{
for(j=2; j if(j*j==i) k=k+1;
}
}
num++;
}

printf("next perfect number= %dn", num-1);
return(0);
}[signature][hline]sadece ölüm ...
anlam bulur gözlerinde ...

[Bu mesaj odchu tarafından 08 Kasım 2004 13:54 tarihinde değiştirilmiştir]
Mesaj tarihi:
#include
int main (void)
{
int n, m, a, count, kaln, kalm, top;
count = 1;
top = 0;
while (count <= 10)
{ printf ("Enter two positive integers:n");
scanf ("%d %d", &n, &m);
a=1;
while (a {
kaln = n % a;
kalm = m % a;
if (kaln == 0 && kalm == 0) top+=a;
a++;
}
if (top == 1) printf ("%d and %d are relatively primen", n, m);
else printf ("%d and %d are not relatively primen", n, m);
count ++;
top = 0;
};
return (0);
}

[Bu mesaj Cassie tarafından 08 Kasım 2004 18:10 tarihinde değiştirilmiştir]
Mesaj tarihi:
ikincide de gene uzatmıssınız aslında :)

gene pseudo code olarak:

int min=number1 >= number2 ? number2 : number1;

int checklimit=Root(min).Floor();
bool relative=false;
for(int k=2; k<=checklimit; k++)
{
if (number1%k==0 && number2%k==0)
{ relative=true;
break;
}
}
printf("Numbers are%s relatively prime",relative ? "":" not");

[Bu mesaj CEDAY tarafından 08 Kasım 2004 20:29 tarihinde değiştirilmiştir]
Mesaj tarihi:
said:
Rewendor, 08 Kasım 2004 11:30 tarihinde demiş ki:
Note that your C program should contain only the main body and the use of any mathematical function is forbidden.
cedaycım öyle çakallık yok :D adam söylemiş işte matematiksel fonksiyonlar yassah :D[signature][hline]en ince yerim bileğim..!?!
Mesaj tarihi:
abi sen yaz o zaman basic olarak o fonksiyonları..
ordaki Root(N).Ceiling/Floor fonksiyonları logN zamanlı rahat implement edersin..(int) cinsinden cünkü sana lazım. normal root implement etmiceksin..

yani sonucta bi ödevdir muhtemelen bu altıüstü ama, daha efficient bişi icin yapılabilir :)

p.s zaten pseudo code olarak yazmıstım. kullanılması gereken algorithm babında :P

[Bu mesaj CEDAY tarafından 08 Kasım 2004 20:24 tarihinde değiştirilmiştir]
Mesaj tarihi:
hmz 1. soru icin sanırım benim verdigim cevap yanlışmıs :)

ama al sana dogrusu
said:

#include


int GetPerfect(int number)
{
if (number <3)
return 16;
int perfect;
for (int k=2; k {
int next=k*k*k*k;
if (next >number)
{
perfect=next;
break;
}

}
return perfect;
}

int main()
{

printf("Enter a number to find a perfect squaren");
int number;
scanf("%d",&number);
int perfect=GetPerfect(number);

printf("Nearest perfect number is %dn",perfect);

return 0;
}


hatta al 2. soru da şöle:
said:

#include


int Root(int number, bool ceiling);
int Root(int number, bool ceiling, int start, int end);

int main()
{

printf("Enter two numbersn");
int number1,number2;
scanf("%d%d",&number1,&number2);
int max,min;
if (number1 > number2)
{
max=number1;
min=number2;
}
else
{
max=number2;
min=number1;
}
int checklimit=Root(min,false);
bool relative=true;
for(int k=2; k<=checklimit; k++)
{
if (number1%k==0 && number2%k==0)
{
relative=false;
break;
}
}
if (max%min==0)
relative=false;
printf("Numbers are%s relatively primen",relative ? "":" not");
return 0;
}





int Root(int number, bool ceiling)
{
return Root(number,ceiling,1,number);

}

int Root(int number, bool ceiling, int start, int end)
{
int average=(start+end)/2;
if (average*average == number)
{
return average;

}
else if (end-start==1)
{
if (end*end==number)
return end;
else
{
if (ceiling)
return end;
else
return start;
}
}
else if (average*average > number)
{
return Root(number,ceiling,start,average);

}
else
return Root(number,ceiling,average,end);
}



p.s neyse bu kadar ara yeter, ben artık derse devam edeyim :P

[Bu mesaj CEDAY tarafından 08 Kasım 2004 23:44 tarihinde değiştirilmiştir]
Mesaj tarihi:
ceday çaktırmadan post kasıyor zaten. bakmayın siz ona :p[signature][hline]ICQ#85889898
If you need a host, contact me.
ıcın değil için, ıyı değil iyi, ınsan değil insan, mılyon değil milyon...

Klavyeniz TR olmaz yazamazsınız, ı yerine i yazarsınız ama i yerine ı yazmak ne dingilliktir çözmüş değilim! Her gördüğümde monitöre kafa atasım geliyor! Hiç mi rahatsız olmuyorsunuz yazarken be!
Mesaj tarihi:
abi aslen koda bakarsan zor bisi yok orda..
yani Root dedigin fonksiyon 3-5 if döngüsünden ibaret :)

bu arada ilk soru icin ilk basta yazdıgım algorithm yerine sunu kullansak olurmus. dün gece bakınca görememişim

int ceiling=Root(N,true);
int ceiling2=Root(ceiling,true);
int perfect=ceiling2*ceiling2*ceiling2*ceiling2;
×
  • Yeni Oluştur...