Cześć, celem zadania jest napisanie funkcji, która będzie zwracać sumę liczb mniejszych od n i jednocześnie względnie pierwszych z n. Podawane odpowiedzi w konsoli są błędne (zazwyczaj suma wynosi 4, 3 bądź 1 - nie wiedząc czemu). Czy ktoś byłby w stanie podać mi jakąś wskazówkę dlaczego tak się dzieje i co powinienem zrobić aby funkcja działała zgodnie z treścią polecenia ?
int sumawzgledniepierwszych(int n) {
int suma = 0;
for (int i = 1; i < n; i++) {
int j = i;
while(n%j!=0){
int temp = n;
n = j;
j = temp % j;
}
if (j == 1) suma += i;
}
return suma;
}
Pętla while znajduje NWD(n, i) i zapisuje tą wartość w zmiennej j. Jeżeli liczby są względnie pierwsze to nwd = 1 w takim razie dodaje do sumy wartość liczby, którą akurat rozpatruje w tej iteracji.