program który wczytuje liczbe naturalną i liczy ilość jej dzielników

0

Witam, mam prośbę żeby ktoś pomógł mi poprawić kod programu w języku c, który wczytuje liczbę naturalną i liczy ilość jej dzielników mniejszych od niej... Będę bardzo bardzo wdzięczna:)

A to jest ten kod....

#include <stdlib.h>
#include <stdio.h>


int f(int i)
{   
    int n;
    int licznik=0;
    for(n=0;n<i;n++)
{
    if(n%i==0)
    licznik ++;
    n++;
}
    return (licznik);
}
int main()
{ 
    int a;
    printf("Podaj liczbe naturalna\n");
    scanf("%d",a);
    getchar();
    return 0;
}
0

Witam, mam prośbę żeby ktoś pomógł mi poprawić kod programu w języku c, który wczytuje liczbę naturalną i liczy ilość jej dzielników mniejszych od niej... Będę bardzo bardzo wdzięczna:)

Czyli znalazłaś jakieś coś jakoś to sklekociłaś i nie działa?
No widzisz, gotowca nie ma.
Musisz zmienić nieco procedurę f i dodać jej wywołanie do maina, skoro napisałaś to wszystko sama to nie powinno z tym być problemu.

A jak nie napisałaś tego sama to pozostaje dział Praca.

0

Trzymaj:

#include<stdio.h>

int dzielniki(int);

int main(void) {
    
    int x;
    
    printf("Podaj liczbe do sprawdzenia:\n");
    scanf("%d", &x);
    printf("Liczba [%d] posiada [%d] dzielnikow mniejszych od niej!", x, dzielniki(x));
    
    return 0;
}

int dzielniki(int x) {
    int liczniki=0;
    int i;
    
    for(i = 1; i < x; i++) {
          if(x%i == 0) {
                 liczniki++;
                 printf("Dzielnik [%d] == [%d]\n", liczniki, i);
          }
    }

    return liczniki;
}

Przykładowe wywołanie:

Podaj liczbe do sprawdzenia:
20
Dzielnik [1] == [1]
Dzielnik [2] == [2]
Dzielnik [3] == [4]
Dzielnik [4] == [5]
Dzielnik [5] == [10]
Liczba [20] posiada [5] dzielnikow!
0

For(i=1;i<23000;i++) s+=dzielniki(i);
Trwa około 5 sek
A dość łatwo napisać tak by w tym samym czasie doliczyło do 2 300 000

1 użytkowników online, w tym zalogowanych: 0, gości: 1