חזור לתיקייה: מועד א

examA_q1c

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה

    examA_q1c

    02340114

    מבוא למדמח מ

    רשימות הרצאה לקריאה בשבת

    examA_q1c

    הופק מתוך תקיית התואר של שקד

    uni-folder.vercel.app

    exama-q1c.c

    הערה (קובץ קוד)

    קובץ זה הוא קובץ קוד מסוג C.

    #include <stdio.h>
    #include <stdlib.h>
    
    #define DONT_KNOW "I_dont_know"
    void printIDontKnow() {
        printf("%s", DONT_KNOW);
        exit(0);
    }
    
    long long CountDivisors(long long n);
    void Divisors(long long n, long long* arr, long long size);
    
    int main(){
        // uncomment next line if you don't know the answer
        // printIDontKnow();
    
        long long n;
        printf("Enter number:\n");
        scanf("%lld", &n);
        long long size = CountDivisors(n);
        long long* arr = (long long*) malloc(sizeof(long long)*size);
        Divisors(n,arr,size);
        printf("Here are the divisors of %lld:\n", n);
        for (long long i = 0; i < size; i++) {
            printf("%lld ", arr[i]);
        }
        free(arr);
        return 0;
    }
    
    long long CountDivisors(long long n){
        long long count = 0;
        int i = 1;
        while(i*i < n){
            if(n % i == 0){
                count += 2;
                i++;
            }
        }
        return count;
    }
    
    void Divisors(long long n, long long* arr, long long size){
        int i = 1;
        int j = 0;
        int k = size;
        while(i*i < n){
            if(n % i == 0){
                arr[j++] = i;
                arr[k--] = n/i;
            }
            i++;
        }
    }