fi[i] vektor kiszamolhato igy (fi[i] < i mindig, szoval sima int eleg)
for (i=1; i<N; i++) {
fi[i] = i;
prim[i] = 1;
}
for (i=2; i<N; i++) {
if (prim[i]) {
for (j=i; j<N; j += i) {
prim[j] = 0;
fi[j] /= i;
fi[j] *= i-1;
}
}
}
NGG <ngg(a)ngg.hu> írta (2011. május 30. 15:59):
Hi!
Talaltam egy szerintem nagyon kiraly feladatot, oldjatok meg :P
http://projecteuler.net/index.php?section=problems&id=337
ha vkit a matekos resze elriaszt, az fogja fel ugy hogy amit ott
fi-vel jelol fuggveny, az egy elore megadott vektor, nem kell rola
kihasznalni semmilyen tulajdonsagot, csak minden n-re fel van sorolva
fi(n)
elso megoldom (nagyon butus) 8 magon futott 72 orat :P
masodik megoldom, amire azthittem hogy vegre rajottem hogyan kell es
nagyon fasza, az futott 5 orat 1 magon
ezekutan galad modon elolvastam hogy mas hogyan csinalta meg, es
csinaltam egy harmadik megoldot azok alapjan, kevesebb mint 1 perc
alatt lefut nagyon siman, ezt kene kitalalnotok
ngg