File talk:Euclid flowchart.svg

Is this supposed to result in an infinite loop whenever A=0?

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

int main(int argc, char **argv)
{
	int a, b;

	if (argc != 3) {
		return EXIT_FAILURE;
	}

	a = atoi(argv[1]);
	b = atoi(argv[2]);

	while (b != 0) {
		if (a > b) {
			a = a - b;
		} else {
			b = b - a;
		}
	}

	printf("%d\n", a);

	return EXIT_SUCCESS;
}