Menu
CoddyTech

Algoritma Euclidean

Pelajaran 11 dari 20 dalam kursus Teka-teki Matematika di Coddy.

Method yang lebih efisien adalah algoritma Euclidean, sebuah varian yang mengganti selisih dua angka x dan y dengan sisa dari pembagian y dengan x.

Dengan menyatakan sisa ini sebagai y mod x, algoritma tersebut berulang kali mengganti (x, y) dengan (x, y mod x) hingga pasangannya menjadi (0, d), dengan d sebagai pembagi bersama terbesar.

challenge icon

Tantangan

Sedang

Tulis kode python, gcd2, yang menghitung FPB berdasarkan algoritma Euclidean dan menerima vector v yang berisi dua angka.

Seberapa cepat kode ini dibandingkan dengan algoritma Euclid?

Coba sendiri

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"

int main() {
    int v[4096];
    int vn = 0;
    char line[65536];
    if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
    char* tok = strtok(line, " \t\r\n");
    while (tok) { v[vn++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int r = gcd2(v, vn);
    printf("%d\n", r);
    return 0;
}

Semua pelajaran di Teka-teki Matematika

7Kelipatan persekutuan terkecil

PengantarSebuah masalah

6Faktor persekutuan terbesar

PengantarAlgoritma EuclideanFungsi phi

9Bilangan biner

Pengenalan

Latihan sendiri: Compiler C online