Şimdi Ara

c de asal sayı ve çarpanlara ayırma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
4.960
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • C de bir sayıyı alıp onun asal çarpanlarını gösteren bir program yazmaya çalışıyorum ilk önce o sayının yarısına kadar ki asal sayılara bölüyorum.Sonra elde ettiğim dizi tek tek sayıya bölüp deniyorum bölünüyorsa onları yazdırıyorum kodum şöyle



    #include<stdio.h> 
    #include<STDLIB.h>
    void ona_kadar_asal(int a,int *asal)
    {
    int i;
    int sayi;
    int e=3;
    int *asal_mi;
    asal_mi = malloc(200);
    for(i=0;i<200;i++)
    {
    asal_mi[i] = 1;
    }
    asal[0] = 2;
    asal[1] = 3;
    asal[2] = 5;
    int b;
    for(sayi=6;sayi<a/2;sayi++)
    {
    for( i = 2; i <= sayi/2; i++ ) {
    if( sayi%i == 0 ) {

    asal_mi[(i-2)] = 0 ;
    break;
    }
    }
    if( asal_mi[(i-2)] == 1 ) {
    asal[e] = sayi;
    e++;
    }
    }

    asal[e] = 0;
    realloc(asal_mi,(e+1));/* belleği verimli kullanmak için*/

    }
    void bolen_bul(int b,int *bolenler)
    {
    int a,c,d,e;
    int aday[100];
    ona_kadar_asal(b,aday);
    for(a=0;aday[a];a++)
    {
    if(b % (aday[a]) == 0)
    {
    bolenler[a] = aday[a];
    }
    }
    bolenler[a] = 0;
    }
    main()
    {
    int a,b;
    int bolenler[200];
    printf("sayilari carpanlara ayirir");
    printf(" sayi giriniz >");
    scanf("%d",&a);
    bolen_bul(a,bolenler);
    for(b=0;bolenler[b];b++)
    {
    printf("%d\n",bolenler[b]);
    }
    getche();
    getchar(); /* program hemen açılıp kapanmasın diye */
    system("PAUSE"); /* program hemen açılıp kapanmasın diye*/
    return 0;
    }




    yardımlaını ziçin teşekkürler







  • çarpanlara ayıran bir program yazamadım ama bir sayının asal bölenlerini bulan bir program yazdım ihtiyacı olan arkadaşlar bakabilirler işte kodu



    #include<stdio.h> 
    void ona_kadar_asal_bul(int a,int *asal)
    {
    /*-----------------------------------------------------------------------------*/
    /*Birinci bölüm asalları bul*/

    int i;
    int sayi;
    int e=3;
    int h=0;
    int *asal_mi;
    asal_mi = malloc(200);
    asal[0] = 2;
    asal[1] = 3;
    asal[2] = 5;
    int b;
    /*-----------------------------------------------------------------------------*/

    for(i=0;i<200;i++)
    {
    asal_mi[i] = 1;
    }
    /*-----------------------------------------------------------------------------*/

    for(sayi=6;sayi<a/2;sayi++)
    {
    for( i = 2; i <= sayi/2; i++ ) {
    if( sayi%i == 0 ) {

    asal_mi[(i-2)] = 0 ;
    break;
    }
    }
    if( asal_mi[(i-2)] == 1 ) {
    asal[e] = sayi;
    e++;
    }
    }

    asal[e] = 0;
    }

    /*-----------------------------------------------------------------------------*/
    main()
    {
    /* atamalar */
    int a,b,c,d,e;
    int g=0;
    int f=0;
    e=0;
    int sayi;
    int bolenler[200];
    int asallar[200];
    int asal_bolenler[100];
    int asal_mi[200];
    /* atamalar */
    /*-----------------------------------------------------------------------------*/
    /* klavyeden değer alınıyor*/
    printf("sayinin asal bolenlerini bulur");
    scanf("%d",&sayi);
    /*değer alındı*/


    /*-----------------------------------------------------------------------------*/
    /*tüm bölenleri bul*/
    for(a=2;a<=sayi/2;a++)
    {
    if(sayi % a == 0)
    {
    bolenler[g] = a;
    g++;
    }
    }
    bolenler[g] = 0;
    /* pozitif bölenler bulundu*/

    /*-----------------------------------------------------------------------------*/

    /*içinden asal olanlar ayıklanıyor */
    ona_kadar_asal_bul(sayi,asallar);
    for(b=0;bolenler[b];b++)
    {
    for(c=0;asallar[c];c++)
    {
    if(bolenler[b] == asallar[c])
    {
    asal_bolenler[f] = bolenler[b];
    f++;
    }
    }
    }

    asal_bolenler[f] = 0;
    /*asal olanlar ayıklandı */
    /*------------------------------------------------------------------------------*/


    /* yazdırılıyor*/
    int z;
    for(z=0;asal_bolenler[z];z++)
    {

    printf("%d\n",asal_bolenler[z]);
    }
    /* yazdırıldı */
    /*------------------------------------------------------------------------------*/

    getche();
    getchar(); /* program hemen açılıp kapanmasın diye */
    system("PAUSE"); /* program hemen açılıp kapanmasın diye*/
    return 0;
    }




    umarım ihtiyacı olanların işine yarar.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.