Рассчитываем остаток от деления a на b



    R = a % b; // % - операция взятия остатка от деления

    while (R != 0) // пока остаток не равен нулю выполняем цикл

    {

              a = b;

              b = R;

              R = a % b;

    }

    printf( "NOD %d " ,b);

    getchar();

    return 0;

}

// Наибольший общий делитель 2

#include <stdio.h>

Int nod( int a , int b ); //функция nod с двумя параметрами (целочисленными)

Int main()

{

    int n1 = 56, n2 = 21;

    int s = nod(56, 21);

    printf( "NOD %d and %d raven%3d" , n1, n2, s);

    getchar();

    return 0;

}

int nod( int a , int b ) // заголовок функции, в "a" передается 56, в "b", соответственно, 21

{   // начало функции

Int R; // переменная для хранения остатка

В случае, если второе число больше первого меняем их местами

    if ( a < b )

              {

              int c = a ;

              a = b ;

              b = c;

              }

Рассчитываем остаток от деления a на b

    R = a % b ; // % - операция взятия остатка от деления

    while (R!=0) // пока остаток не равен нулю выполняем цикл

              {

                       a = b ;

                       b = R;

                       R = a % b ;

              }

Return b ; // возвращаем последний делитель в main

}

2) Найти наибольший простой делитель положительного целого числа.

Задайте целочисленное значение некоторой переменной. Последовательно разделите его на числа начиная с 2, до тех пор, пока остаток от деления не станет равным единице. Выведите на экран последний делитель.

// Наибольший простой делитель числа

#include <stdio.h>

int npd( int n );

Int main()

{

    int a, c;

Вводим число, используем указатель,

То есть записываем это число в переменную a

    scanf( "%d" , &a);

    c = npd(a); /* "c" равно результату выполнения функции npd()

     с аргументом, значение которого ввели с клавиатуры*/

    printf( "%d" , c);

Getchar(); // два getchara из-за того, что используем scanf

    getchar();

    return 0;

}

Int npd( int n ) // функция поиска наибольшего простого делителя

{

    int i = 2; // счетчик делителя

    while (i*i <= n )

              {

                       if ( n %i==0)

                                 {

                                 n = n / i;

                                 }

Else

                                 {

                                 i = i++;

                                 }

              }

Return n ; // возвращаем это значение в main

}

3) Вывести Ряд Фибоначчи до определенного аргумента.

Задайте целочисленное значение некоторой переменной, являющейся номером элемента ряда Фибоначчи.

Выведите на экран Ряд Фибоначчи до указанного номера.

// Фибаначчи

#include <stdio.h>

void fiba( int a );

Int main()

{

    int d ;

    scanf( "%d" , &d);

    fiba(d);

    getchar();

    getchar();

    return 0;

}

Void fiba( int a )

{

    int i=1,sum;

    int e1 = 1, e2 = 1;

    for ( int i = 1; i <= a ; i++)

    {

              if (i < 3)

              {

                       printf( "%d " , e1);

              }

Else

              {

                       sum = e1+e2;

                       e1 = e2;

                       e2 = sum;

                       printf( "%d " , sum);

              }

             

    }

}

Вывод.

В ходе лабораторной работы изучен цикл while. С использованием цикла while написаны следующие программы: поиск наибольшего общего делителя двух положительных чисел (по алгоритму Эвклида), поиск наибольшего простого делителя числа, а также выведение ряда Фибоначчи до n элемента (значение n задается программистом).

Практическое задание для самостоятельной работы.

 

 

С помощью цикла while вывести на экран таблицы умножения.

 


Дата добавления: 2019-11-25; просмотров: 233; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!