Łączenie funkcji

0

Witam, chciałbym się Was poradzić, czy możliwe jest złączenie dwóch funkcji w jedną tak by wciąż poprawnie działała?

int nwd(int i,int n) // funkcja sprawdza czy para (i,j) jest względnie pierwsza
{
  int q;
  while (n != 0)
   {
    q = i;
    i = n;
    n = q%n;
   }
 return i;
}


int phi (long int n) // funkcja sumująca liczby względnie pierwsze z naszą 'n'
{
 int i =1;
 int suma =0;
 for(i =1; i<=n; i++)
   {
    if(nwd(i,n) == 1)
      {
       suma =suma+1;
      }
   }
  return suma;
}

Chciałbym, aby to było bardziej zwarte i skompresowane, o ile się da ;)

0

Tak, tylko po co?
Co łatwiej czytać i utrzymywać, jeden olbrzymi kod w funkcji czy parę mniejszych funkcji? Co łatwiej debugować? Co łatwiej testować?

0

Okej rozumiem twój punkt widzenia ;)
Ale ja jako jeszcze nie rozumiejący wielu rzeczy nie potrafię wiele ;)
Stąd takie, a nie inne pytanie ;)
I teraz pytanie, czy mógłbyś mi powiedzieć, pokazać jak te zespolić w jedno? ;)

0
int phi_nwd(long int n)
{
	int suma = 0;
	for (int i = 1; i <= n; i++)
	{
		int m = n;
		int j = i;
		int q;
		while (m != 0)
		{
			q = j;
			j = m;
			m = q%m;
		}

		if (j == 1)
		{
			suma = suma + 1;
		}
	}
	return suma;
}

Tutaj masz jako 1 funkcję, choć tak jak kolega powiedział - nie wygląda to zbyt ładnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1