error: cannot resolve overloaded function ‘sqrt’ based on conversion to type ‘int’

Сама задача звучит так: Дано число n не более 100 и n натуральных чисел, где n - квадрат натурального числа. Данные вводятся с клавиатуры. Сформировать квадратную матрицу порядка √n.

Вывести матрицу в виде таблицы, следующими строками элементы главной диагонали и побочной диагонали так, как они расположены в матрице.

Вывод выполните по формату: каждый элемент в 5 позиций.

В следующей строке вывести одно число - ответ на задачу.

Постоянно пишет такую ошибку : tester.cpp: In function ‘int main()’: tester.cpp:10:19: error: cannot resolve overloaded function ‘sqrt’ based on conversion to type ‘int’ int m = (sqrt)num; Помогите пожалуйста разобраться, буду благодарна


#include <iostream>
#include<iomanip>
#include <math.h>
using namespace std;

int main()
{
    int num;
    cin >> num;
     int m = (sqrt)num;
    int mas[m][m];
    for(int i = 0; i < m; i++){   
    for(int j = 0; j < m; j++){
        
        cin>>mas[i][j];
        cout<<setw(5)<<mas[i][j]<<" ";
        
        
    }cout<<endl;
    }
    for(int i = 0; i < m; i++){
        
    for(int j = 0; j < m; j++){
        
        cin>>mas[i][j];
        if(i == j){
            cout<<setw(5)<<mas[i][j]<<" ";
        }
        cout<<setw(5)<<" ";
        
        
    }cout<<endl;
    }
    for(int i = 0; i < m; i++){
        
    for(int j = 0; j < m; j++){
        
        cin>>mas[i][j];
        if(i-j == m-1){
            cout<<setw(5)<<mas[i][j]<<" ";
        }
        cout<<setw(5)<<" ";
        
        
    }cout<<endl;
    }
    return 0;
}

Ответы (1 шт):

Автор решения: Odilkhon

попробуйте заменить int m = (sqrt)num; на int m = pow(num, 1./2);

→ Ссылка