Skip to main content

C Programlama : Girilen Sayının Asal Carpanlarını Bulmak

Algoritma oluştururken lise matematik dersinde kullandığımız  yöntemden yararlandık. Kullanıcının girdiği sayı ilk önce ikiye  bölünmek isteniyor. Eğer bölünürse 2’nin bir asal çarpan olduğu anlaşılıyor ve ekrana yazdırılıyor. i = i – 1 ataması ile, sayı tekrar 2’ye bölünmeye çalışılıyor. 2’ye daha fazla bölünemiyorsa bu sefer aynı işlemler 3 için tekrarlanıyor. Bu şekilde devam ederek sonuca ulaşabiliriz.

Not : Farklı yontemlerle de sonuca gidilebilir.

 

 
 
#include <stdio.h>
#include<conio.h>
	int main ()
	{
		int s;
	   	int i;
 
	   	printf (" Bir sayi giriniz: ");
	   	scanf  ("%d", &s);
 
	   	printf ("\n");
 
	   	// Algoritma oluştururken lise matematik dersinde kullandığımız
	   	// yöntemden yararlandık. Kullanıcının girdiği sayı ilk önce ikiye
	   	// bölünmek isteniyor. Eğer bölünürse 2'nin bir asal çarpan olduğu
	   	// anlaşılıyor ve ekrana yazdırılıyor. i = i - 1 ataması ile, sayı
	   	// tekrar 2'ye bölünmeye çalışılıyor. 2'ye daha fazla bölünemiyorsa
	   	// bu sefer aynı işlemler 3 için tekrarlanıyor...
 
	   	for (i = 2; s != 1; i ++)
	   	{
			if (s % i == 0)
			{
		   		s /= i;
 
		   		printf ("%5d", i);
 
		   		i --;
			}
	   	}
 
	   	printf ("\n");
 
	   getch();
	}

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

C Programlama : Girilen Sayının Asal Carpanlarını Bulmak” hakkında 3 yorum

  1. Merhaba,kodda ufak bir hata var
    böldüğünüz değişkeni sayıya aktardığınız için for döngüsünde böldüğünüz değişken çıkıyor

    yani 14 ün asal çarpanını kodda deneyince sadece 2 çıkıyor

    kodun düzenlenmiş hali böyledir

    /*
    * 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 asalcarpanbulanprogram;

    /**
    *
    * @author Che12
    */
    public class Asalcarpanbulanprogram {

    static int sayac = 0;
    static int sayitutucu = 0;
    static void asalcarpanbul(int sayi)
    {

    for(int i=2;i<sayi;i++)
    {
    if(sayitutucu%i == 0)
    {
    sayitutucu = sayi;
    sayitutucu = sayitutucu/i;
    System.out.println(i);
    i–;
    }
    }

    }

    public static void main(String[] args)
    {
    asalcarpanbul(14);
    }

    }

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print