• 30-09-2019, 15:21:49
    #1
    Arkadaşlar merhaba javada Asal çarpanlarını bulan bir program yazmam lazım fakat ben sadece asal mı değil mi yazabiliyorum yardım ederseniz çok sevinirim şimdiden teşekkürler.
    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package javaapplication6;
    
    import java.util.Scanner;
    
    /**
    *
    * @author fehmi
    */
    public class JavaApplication6 {
    
    /**
    * @param args 1he command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here
    //Eğer 1 seçerseniz n sayısına kadar toplar
    //Eğer 2 seçerseniz n sayısına kadar çarpar
    //Eğer 3 seçerseniz n sayısına kadar 3'ün tam katlarını bulur
    Scanner x = new Scanner(System.in);
    System.out.println("Lütfen 1 ile 3 arasında bir sayı giriniz!");
    int sayı1 = x.nextInt();
    if(sayı1==1){
    Scanner sayı2 = new Scanner(System.in);
    System.out.print("Bir Sayı Girin:");
    int sayi = sayı2.nextInt();
    int toplam = 0;
    for(int i = 1; i <= sayi; ++i){
    toplam=toplam+i;
    }
    
    System.out.println("Sayıların Toplamı = " + toplam);
    }
    if(sayı1==2){
    Scanner sayı3 = new Scanner(System.in);
    System.out.print("Bir Sayı Girin:");
    int sayi3= sayı3.nextInt();
    int çarpım =1;
    for(int z=1; z <=sayi3; ++z){
    çarpım=çarpım*z;
    }
    System.out.println("Çarpım: "+çarpım);
    }
    if (sayı1==3){
    Scanner sayı4 = new Scanner(System.in);
    System.out.print("Bir Sayı Girin:");
    int sayi4= sayı4.nextInt();
    for(int u=1; u<=sayi4; ++u){
    if(u%3==0){
    System.out.println(u);
    
    }
    }
    
    
    }
    if (sayı1!=1 && sayı1!=2 &&sayı1!=3){
    System.out.println("Hatalı sayı girdiniz");
    }
    }
    }
    bu benim yazdığım kod
  • 30-09-2019, 15:26:10
    #2
    Oturup java yi kurasim hic yok ama anlatayim basitce
    zaten asallari buluyorsan senin sayindan kucuk asallari bir array e topla en kucugunden bolmeye basla bolunenleri bolunmedigi zaman bir sonraki asala git bulmus olursun zaten
  • 30-09-2019, 15:32:33
    #3
    Oturup java yi kurasim hic yok ama anlatayim basitce
    zaten asallari buluyorsan senin sayindan kucuk asallari bir array e topla en kucugunden bolmeye basla bolunenleri bolunmedigi zaman bir sonraki asala git bulmus olursun zaten
  • 30-09-2019, 15:54:44
    #4
    Çarpanları da bu şekilde bulabilirsin.
    Kodu biraz temizle. her seferinde scanner tanımlamana gerek yok. while(true) içerisine al bir tane flag tanımla flag false vye true olana kadar while dan çıkarma.

    public static void main(String[] args) {
    //kaaNx
    int girilenSayi;
    Scanner sc = new Scanner(System.in);
    System.out.println("Sayı Giriniz : ");
    girilenSayi = sc.nextInt();
    
    System.out.println("Cevap :");
    for (int i = 2; i < girilenSayi; i++) {
    while (girilenSayi % i == 0) { //i ile bölümünden kalan 0 ise
    System.out.println(i + " ");
    girilenSayi = girilenSayi / i;
    }
    }
    if (girilenSayi > 2) {
    System.out.println(girilenSayi);
    }
        }
  • 30-09-2019, 16:43:23
    #5
    kaaNx adlı üyeden alıntı: mesajı görüntüle
    Çarpanları da bu şekilde bulabilirsin.
    Kodu biraz temizle. her seferinde scanner tanımlamana gerek yok. while(true) içerisine al bir tane flag tanımla flag false vye true olana kadar while dan çıkarma.

    public static void main(String[] args) {
    //kaaNx
    int girilenSayi;
    Scanner sc = new Scanner(System.in);
    System.out.println("Sayı Giriniz : ");
    girilenSayi = sc.nextInt();
    
    System.out.println("Cevap :");
    for (int i = 2; i < girilenSayi; i++) {
    while (girilenSayi % i == 0) { //i ile bölümünden kalan 0 ise
    System.out.println(i + " ");
    girilenSayi = girilenSayi / i;
    }
    }
    if (girilenSayi > 2) {
    System.out.println(girilenSayi);
    }
        }
    Bir deneyeceğim hocam teşekkür ederim