Hej, piszę program, który ma za zadanie otrzymać od użytkownika pole prostokąta i ma podać jaki jest najmniejszy możliwy obwód kwadratu i jakie boki by musiał mieć (boki muszą być całkowite). Nie mogę znaleźć sposobu na znalezienie najmniejszego obwodu w tabeli (kopiowałem wiele kodów, ale z jakiegoś powodu albo pokazuje losową liczbę, albo 0, albo największą wartość jak pokazuje obecny kod podświetlony na końcu). Przy okazji jak już znajdzie daną wartość to jak będę mógł zwrócić również odpowiadajace boki?(numer w tabeli powinny mieć ten sam, np. jeśli najmniejszy obwód to obwod[7], to bok_a[7] i bok_b[7] bedą odpowiadającymi bokami)
#include <iostream>
#include <locale.h>
using namespace std;
int ile_dzielnikow(int p){
long dzielnik=1;
for(int l=1;l<p;l++)
{
if(p%l==0) dzielnik++;
}
}
int main() {
setlocale(LC_CTYPE, "Polish"); //polskie znaki
int pole_prostokata; //zmienna pole
cout << "Podaj pole prostokąta: ";
cin >> pole_prostokata; //wczytanie pola wartosci do zmiennej
int wielkosc = ile_dzielnikow(pole_prostokata);
int i=1; //zmienna i
int bok_a[wielkosc];
int bok_b[wielkosc];
int obwod[wielkosc];
for(i=1; i <= wielkosc; i++)
{
float a = (float)pole_prostokata / (float)i;
if (a - int(a) != 0 )
continue;
bok_a[i-1] = a;
int b = pole_prostokata / a;
bok_b[i-1] = b;
obwod[i-1] = 2*a + 2*b;
cout << bok_a[i-1] << ", " << bok_b[i-1] << ", " << obwod[i-1] << endl;
}
int najmniejszy = obwod[0];
for(int i=0; i<wielkosc; i++){
if(obwod[i] > najmniejszy)
najmniejszy = obwod[i];
}
cout << najmniejszy;
}a