Skip to content

Instantly share code, notes, and snippets.

@gokhanyavas
Last active March 13, 2022 21:28
Show Gist options
  • Save gokhanyavas/5267057 to your computer and use it in GitHub Desktop.
Save gokhanyavas/5267057 to your computer and use it in GitHub Desktop.
1'den 999'a kadar olan tam sayılar içeresinden basamaklarının küp değeri toplamı kendisine eşit olan c programı
//1'den 999'a kadar olan tam sayılar içeresinden basamaklarının küp değeri toplamı kendisine eşit olan program
-------------------- HATALI OLAN KODLAR -------------------------------
/*
#include <stdio.h>
#include <conio.h>
int main()
{
// while(1) // sonsuz döngü
// %g virgülden sonraki sıfırları göstermiyor
int i,n,kuptoplam,bir,onb,yuz;
for (i=1; i<=999; i++ );
{
yuz=i/100;
onb=(i-yuz*100)/10;
bir = i-(yuz*100+onb*10);
kuptoplam = bir*bir*bir+onb*onb*onb+yuz*yuz*yuz;
if (i= kuptoplam)
printf ("%d\n",i);
}
getch();
// ekranın kapanmasını engelliyor..
}*/
------------------- DOGRU KODLAR -----------------------------
#include <stdio.h>
int main()
{
int i, n, kuptoplam, birler, onlar, yuzler;
for (i = 1; i <= 999; i++)
{
yuzler=i/100;
onlar= (i-yuzler*100)/10;
birler = i-((yuzler*100)+(onlar*10));
kuptoplam = (birler * birler * birler) + (onlar * onlar * onlar) + (yuzler * yuzler * yuzler);
if (i == kuptoplam){
printf ("-----------------------\n");
printf ("%d\n",i);
}
}
}
--------------------- CEVAP ------------------
-----------------------
1
-----------------------
153
-----------------------
370
-----------------------
371
-----------------------
407
@TrojKu98
Copy link

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?

@kerserbib
Copy link

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?
Biraz gec olmus olabilir ama lazimsa su kodu kullanabilirsin.Daha dogru calisiyor.

#include<stdio.h>

int main(){
int i,j,toplam=0;

for(i=1;i<=999;i++)
{	
	int gecci = i;
	int gecici=toplam;
	devam:
	if(gecci%10>1)
	{
		int a = gecci%10;
		gecici+=a*a*a;
		gecci/=10;
		goto devam;
	}
	else
	{
		gecici+=gecci*gecci*gecci;
	}
	if(gecici==i)
	{
		printf("%d sayisinin rakamlarinin kupleri toplami kendisine esit(Toplam:%d)\n",i,gecici);
	}
}

}

@gokhanyavas
Copy link
Author

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?
Biraz gec olmus olabilir ama lazimsa su kodu kullanabilirsin.Daha dogru calisiyor.

#include<stdio.h>

int main(){
int i,j,toplam=0;

for(i=1;i<=999;i++)
{	
	int gecci = i;
	int gecici=toplam;
	devam:
	if(gecci%10>1)
	{
		int a = gecci%10;
		gecici+=a*a*a;
		gecci/=10;
		goto devam;
	}
	else
	{
		gecici+=gecci*gecci*gecci;
	}
	if(gecici==i)
	{
		printf("%d sayisinin rakamlarinin kupleri toplami kendisine esit(Toplam:%d)\n",i,gecici);
	}
}

}
çalıştırdığımda senin örneği yanlış çalışıyor. tekrar kontrol et dostum. doğru şeklini yukarıda bulacaksın ;)

@gokhanyavas
Copy link
Author

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?

küçük hatalar olduğunu gördüm. mesela for'dan hemen sonra ; ve kimse görememiş 7 yıldır :))

@kerserbib
Copy link

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?
Biraz gec olmus olabilir ama lazimsa su kodu kullanabilirsin.Daha dogru calisiyor.

#include<stdio.h>
int main(){
int i,j,toplam=0;

for(i=1;i<=999;i++)
{	
	int gecci = i;
	int gecici=toplam;
	devam:
	if(gecci%10>1)
	{
		int a = gecci%10;
		gecici+=a*a*a;
		gecci/=10;
		goto devam;
	}
	else
	{
		gecici+=gecci*gecci*gecci;
	}
	if(gecici==i)
	{
		printf("%d sayisinin rakamlarinin kupleri toplami kendisine esit(Toplam:%d)\n",i,gecici);
	}
}

}
çalıştırdığımda senin örneği yanlış çalışıyor. tekrar kontrol et dostum. doğru şeklini yukarıda bulacaksın ;)

rezil olduk:)

@kerserbib
Copy link

Basamaklarının küpü kendisine eşit olan demişsiniz program 1000 veriyor
1000'in basamaklarının küpü kendisine mi eşit ?
Biraz gec olmus olabilir ama lazimsa su kodu kullanabilirsin.Daha dogru calisiyor.

#include<stdio.h>
int main(){
int i,j,toplam=0;

for(i=1;i<=999;i++)
{	
	int gecci = i;
	int gecici=toplam;
	devam:
	if(gecci%10>1)
	{
		int a = gecci%10;
		gecici+=a*a*a;
		gecci/=10;
		goto devam;
	}
	else
	{
		gecici+=gecci*gecci*gecci;
	}
	if(gecici==i)
	{
		printf("%d sayisinin rakamlarinin kupleri toplami kendisine esit(Toplam:%d)\n",i,gecici);
	}
}

}
çalıştırdığımda senin örneği yanlış çalışıyor. tekrar kontrol et dostum. doğru şeklini yukarıda bulacaksın ;)

Algoritmayi kendim yazdim.yani o benim cocugum gibi.Kodu seninki gibi yapmadan duzeltebilirmiyim?

@bianili
Copy link

bianili commented May 13, 2020

#include <stdio.h>
#include <stdlib.h>

int main() {

int birler, onlar, yuzler, i, total;

total=0;

for (i=1;i<1000;i++)
	{
		birler=i%10;
		onlar=(i/10)%10;
		yuzler=i/100;
		
		total=(birler*birler*birler)+(onlar*onlar*onlar)+(yuzler*yuzler*yuzler);
		
		if(i==total)
			{
				printf("%d \n\n",total);				
			}
	}

return 0;

}

output

  1


  153


  370


  371


  407

@Emircanf
Copy link

//0 da kattım ama isterseniz for içindeki 0'ı 1 yapabilirsiniz.

#include <stdio.h>
#include <conio.h>

int main() {

int x,a,b,c,d;
for (x=0;x<=999;x++){
a=x/100;
b=(x/10)%10;
c=(x%10)%10;
d=(a*a*a)+(b*b*b)+(c*c*c);	
	if (x==d) {	
	printf("%d\n",x);	
} 
}		
getch();
return 0;

}

@Timsword
Copy link

Timsword commented Mar 17, 2021

sizinkiler baya da kısa olmuş :) benim yaptığım uzun oldu sizinkine göre

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment