jel sam mogla na neki jednostavniji način napravit ovaj program, mislim on radi i sve pet al malo mi se čini kompliciran
[code:1]#include <stdio.h>
int f (int n);
main (void){
int n;
scanf("%d", &n);
printf ("maksimalna suma = %d\n", f(n));
}
int f (int n){
int x, i, p, sum=0, flag=0,max=0;
for ( i=0; i<n; i++){ scanf ("%d", &x);
p=2;
sum=0;
while(1){
if (x%p==0){
x/=p;
flag=1;
}else{
if (flag==1){
sum+=p;
flag=0;
}
p++;
if (x==1) break;
}
}
printf ("suma (%d) = %d\n", i, sum);
if (sum>max) max=sum;
}
scanf ("%%");
return max;}[/code:1]
funkcija učitava n iz N, te treba ispisati sumu različitih prostih djelitelja svakog učitanog broja, i vraća najveću ispisanu sumu?
jel sam mogla na neki jednostavniji način napravit ovaj program, mislim on radi i sve pet al malo mi se čini kompliciran
Kod: | #include <stdio.h>
int f (int n);
main (void){
int n;
scanf("%d", &n);
printf ("maksimalna suma = %d\n", f(n));
}
int f (int n){
int x, i, p, sum=0, flag=0,max=0;
for ( i=0; i<n; i++){ scanf ("%d", &x);
p=2;
sum=0;
while(1){
if (x%p==0){
x/=p;
flag=1;
}else{
if (flag==1){
sum+=p;
flag=0;
}
p++;
if (x==1) break;
}
}
printf ("suma (%d) = %d\n", i, sum);
if (sum>max) max=sum;
}
scanf ("%%");
return max;} |
funkcija učitava n iz N, te treba ispisati sumu različitih prostih djelitelja svakog učitanog broja, i vraća najveću ispisanu sumu?
|