Java’da Mükemmel Sayıları Bulma
SORU: Kendisi hariç tüm bölenlerinin toplamı kendisine eşit olan sayı mükemmel sayıdır.
Örnek : 28 = 14 + 7 + 4 + 2 + 1
1. Bir sayiMukemmelMi(int sayi) fonksiyonunu yazalım.
Girilen sayının mükemmeliğini kontrol eden bir program
Girilen bir sayıya kadar bulunan tüm mükemmel sayıları listeleyen bir program
Ne yapmak istiyorsun?
1. Bir sayının mükemmel olup olmadığını sor
2. Bir sayıya kadar bulunan tüm mükemmel sayıları listele
3. Çıkış
Seçiminiz: 1
Sayıyı girin : 14
Sonuç : Mükemmel değil
MENÜ
Seçiminiz: 1
Sayıyı girin : 28
Sonuç : MÜKEMMEL BİR SAYI
MENÜ
Seçiminiz : 2
Kaça kadar listeleyelim: 50
CEVAP:
import java.util.Scanner; public class MukemmelSayi { public static int GirilenMukemmelSayiKontrol; static void menu() { System.out.println("ne yapmak istiyorsun"); System.out.println("1. Bir sayının mükemmel olup olmadıgını sor"); System.out.println("2. bir sayıya kadar bulunan tüm mükemmel sayıları listele "); System.out.println("3. Çıkış"); } static void secimGir() { Scanner input = new Scanner(System.in); int sayi = input.nextInt(); System.out.println("Seçiminiz:" + sayi); int sonuc = 0; switch (sayi) { case 1: mukemmelSayiGir(); mukemmelSayiKontrolu(GirilenMukemmelSayiKontrol); break; case 2: mukemmelSayiGir(); mukemmelSayilariListele(GirilenMukemmelSayiKontrol); break; case 3: System.out.println("Güle Güle..."); System.exit(0); break; default: break; } } static void mukemmelSayiGir() { Scanner input = new Scanner(System.in); System.out.print("Sayı girin:"); GirilenMukemmelSayiKontrol = input.nextInt(); } static boolean mukemmelSayiKontrolu(int sayi) { int sonuc = 0; for (int i = 1; i <= sayi / 2; i++) { if (sayi % i == 0) { sonuc = sonuc + i; } } if (sonuc == sayi) { System.out.println("Mükemmel sayıdır: " + sayi); return true; } else { System.out.println("Mükemmel sayıdır degildir: " + sayi); return false; } } static boolean mukemmelSayiKontrolu2(int sayi) { int sonuc = 0; for (int i = 1; i <= sayi / 2; i++) { if (sayi % i == 0) { sonuc = sonuc + i; } } if (sonuc == sayi) { return true; } else { return false; } } static void mukemmelSayilariListele(int sayi) { int toplam = 0; for (int i = 1; i < sayi; i++) { if (mukemmelSayiKontrolu2(i)) { toplam = i; System.out.println(toplam); } } /* * System.out.print("Kaça kadar listeleyelim: "); * * for (int i = 1; i <= sayi/2; i++) { if (sayi % i == 0) { sonuc = sonuc + i; * * * } System.out.println(sonuc); } * */ } public static void main(String[] args) { boolean devam = true; int sayi; while (devam) { menu(); secimGir(); } } }
EKRAN ÇIKTISI:
0 yorum