Új hozzászólás Aktív témák

  • ArchElf

    addikt

    válasz ArchElf #895 üzenetére

    Ehh :O
    Megoldottam az egészet, gyorsabban 512 MB memória nélkül is...
    Egyszerű matek. Úgy tűnik a sok memória és a sok számítás meg feltétel lasabbá teszi az egészet, mint az egyszerű számítgatás.

    private static bool isPrimeWithCountNewSingular(Int64 szam)
    {
    Console.WriteLine("Osztoi:");

    // Lista az osztók tárolására
    List<long> osztok = new List<long>();

    long bc = szam;
    Int64 ix = 2;
    bool search = true;
    while (search)
    {
    long lr;
    long sq = (long)Math.Floor(Math.Sqrt(bc));
    if ((lr = GetPrimes(szam, ref bc, ref ix, ref search, sq)) != 0)
    osztok.Add(lr);
    }
    if (osztok.Count == 0)
    {
    Console.WriteLine("nincsenek");
    return true;
    }
    else
    {
    Console.WriteLine("{0} prímtényezőre osztható, melyek a következők:", osztok.Count);
    foreach (long l in osztok)
    Console.Write("{0} ", l);
    Console.WriteLine();
    return false;
    }
    }

    private static long GetPrimes(long szam, ref long bc, ref Int64 ix, ref bool search, long sq)
    {
    long oszto = 0;
    bool mul = false;
    while (ix <= sq)
    {
    if (bc % ix == 0)
    {
    bc /= ix;
    mul = true;
    oszto = ix;
    break;
    }
    ix++;
    }
    if (!mul)
    {
    if (bc != szam)
    oszto = bc;
    search = false;
    }
    return oszto;
    }

    FCK... mást nem akarok mondani.

    AE

    Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

Új hozzászólás Aktív témák