
#include <stdio.h>
#include <math.h>
#include <string.h>

#define MIN 50
#define MAX 1000000


int main()

{

// Вводим переменные, счётчик для чисел, дробь для извлечённого корня, строку для поиска

int i;             
double result;

char buf[100];

for(i = MIN; i <= MAX; i++)              // от 50 до 1000000
  {
   
   result = sqrt(i);                     // вычисляем корень в цикле(для этого включаем библиотеку при компиляции)        
   
   //printf("%.60f\n", result);          // получилась дробь
   
   sprintf(buf, "%.60f", result);        // выводим дробь в строку
   
   
   int j, nuli;                          // вводим переменные, счётчик для символов в строке и число нулей в конце дроби
   int how_many_cyphers = 0;             // сколько цифр в целой + дробной части
   
   nuli = strlen(strstr(buf, "000000")); // strstr выводит подстроку начиная с 000000, strlen считает длину полученного
    
   if(strlen(buf) - nuli - 1 > 50)       // из строки вычесть нули и точку, проверить на длину не менее 50 цифр
    {
     for(j = 0; j < strlen(buf) - nuli; j++) // пройти по строке, её длина равна строка - нули
      if(buf[j]!= '.') how_many_cyphers++;   // точку пропустить, а остальное посчитать
     
     printf("Корень из %3d : %.60s : количество цифр %d\n", i, buf, how_many_cyphers);  // вывести строку таблицы
    }
  
  }

printf("\tEND PROGRAM\n");

return 0;
} 
