Определить функцию, проверяющую, является ли заданная дробь несократимой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите, пожалуйста, получить допуск к экзамену по программированию. Необходимо завтра сдать задания, а я их ещё не сделал. Вам будет личная полезная практика, а мне допуск. Вот собственно задания: 2) Определить функцию, проверяющую, является ли заданная дробь несократимой. (Дробь задается двумя натуральными числами – числителем и знаменателем). Найти все не-сократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают заданное число n. Заранее спасибо.

Решение задачи: «Определить функцию, проверяющую, является ли заданная дробь несократимой»

textual
Листинг программы
#include<stdio.h>
#include <conio.h>
 
void swap(int *a, int *b){
    int c = *a;
    *a = *b;
    *b = c;
}
 
void sort2(int *a, int *b){
    if(*b > *a){
        swap(a, b);
    }
}
 
int nod(int a, int b){
    int c;
    sort2(&a, &b);
    while(b != 0){
        c = a;
        a = b;
        b = c % b;
    }
    return a;
}
 
int main(void){
    int n = 0;
    int i = 0;
    printf("n = ");
    scanf("%i", &n);
    for(i = 1; i < n; i++){
        if(nod(i, n) == 1){
            printf("%i/%i ", i, n);
        }
    }
  _getch();
  return 0;
}

Объяснение кода листинга программы

  1. Включаются заголовочные файлы stdio.h и conio.h
  2. Определяется функция swap, которая меняет местами значения двух указателей
  3. Определяется функция sort2, которая сортирует два числа a и b, если b больше a, то они меняются местами с помощью функции swap
  4. Определяется функция nod, которая находит наибольший общий делитель (НОД) двух целых чисел a и b
  5. В функции main считывается число n с помощью scanf
  6. В цикле от 1 до n-1 вычисляется НОД для каждого числа от 1 до n-1 и выводится на экран в формате число/n
  7. Завершается программа с помощью функции _getch

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы