C Dilinde Tamsayının Asal Çarpanlarını Bulma

Bu gün farkettim, uzun zamandır sitede kod yayınlanmamış. Bu yüzden C dilinde bir program yazmaya karar verdim. Programı özetlemek gerekirse, bir pozitif tamsayının asal çarpanlarını bulan programı yazacağım. Program, asal çarpanlarını bulacağı sayıyı kullanıcıdan alacak.

Asal çarpanları anlatmama gerek yoktur galiba. Bu yüzden hemen programın anlatımına geçiyorum. Örneğin 120 sayısının asal çarpanları 2 x 2 x 2 x 3 x 5 ‘ dir.Bu programda 2 fonksiyon kullanacağız. Fonksiyonlardan biri sayının asal olup olmadığını kontrol etmelidir. Dolayısıyla, bu fonksiyon bir pozitif sayıyı parametre olarak almalı ve asal ise 1; değilse 0 değerini döndürmelidir. Diğer fonksiyon ise, bir sayının bir başka sayıya bölünüp bölünmediğini belirlemelidir. Dolayısıyla bu fonksiyon iki sayıyı parametre olarak almalı ve ikinci sayı birincisini bölüyorsa 1; bölmüyorsa 0 değerini döndürmelidir.

 


#include "stdio.h" int asal(int); int bol(int,int); /*Sayinin asal carpanlarini bulur*/ int main(void) { int sayi,i; printf("Bir pozitif sayi giriniz: "); scanf("%d",&sayi); printf("%d sayisinin asal carpanlari: ",sayi); for(i=2;sayi>0;i++) { if(asal(i)&&bol(sayi,i)) { printf("%3d",i); sayi=sayi/i; i--; } } return(0); } /* s’nin asal olup olmadigini kontrol eder*/ int asal(int s) { int i; for (i=s-1;i>1;i--) { if(s%i==0) return(0); } return(1); } /*x’in y’ye bolunurlugunu kontrol eder*/ int bol(int x, int y) { if(x%y==0) return(1); else return(0); }

Bir cevap yazın

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