human: Напиши функцию факториала на go
gpt: Вот простая реализация функции факториала в Go:

package main

import "fmt"

func factorial(n int) int {
    if n == 0 {
        return 1
    }
    return n * factorial(n-1)
}

func main() {
    fmt.Println(factorial(5))
}

Этот код определяет функцию с именем factorial, которая принимает целое число n в качестве входных данных и возвращает факториал n. Факториал n вычисляется путём умножения n на факториал n-1. Если n = 0, функция возвращает 1.  В функции main() вычисляется факториал, равный 5, и выводится в консоль.
human: хорошо, а теперь сделай её используя цикл "for"
gpt: Вот реализация функции факториала на основе цикла "for":

```go
package main

import "fmt"

func factorial(n int) int {
	var factorial = 1

	for i := 1; i <= n; i++ {
		factorial = factorial * i
	}

	return factorial
}

func main() {
	fmt.Println(factorial(5))
}
```
human: Перепиши функцию факториала на основе цикла "for" на Си
gpt
#include <stdio.h>

int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }
    return result;
}

int main() {
    printf("%d", factorial(5));
    return 0;
}