Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 124 Divizor si multiplu  (Citit de 15146 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #25 : August 15, 2011, 13:35:30 »

E OK, s-a facut, a fost totusi o greseala din partea mea, uitasem sa precaut cazul cind exista un divizor prim mai mare decit numerele prime pe care le-am generat eu Aha Ok
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #26 : August 15, 2011, 14:22:21 »

Nu era necesar sa generezi numere prime pentru factorizare.
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #27 : Iulie 16, 2012, 13:01:23 »

Cred ca e posibil sa existe un test in care nu se respecta restrictia Y<=100.000.000 Thumb down Am verificat cu sursa asta punand
Cod:
assert(X<=10000 && Y<=100000000);
si ia KBS 6. Sursa aceea (aici) fara assert ia incorect deoarece eu precalculam numerele prime mai mici ca 10000 (mai mici ca radical din Y). Think
Memorat
lucian666
Client obisnuit
**

Karma: 16
Deconectat Deconectat

Mesaje: 84



Vezi Profilul
« Răspunde #28 : Octombrie 30, 2012, 20:44:32 »

 Smile Buna seara.Cred ca exista unele teste care nu respecta cerinta din enunt ca Y<=100.000.000 deoarece am pus assert(x<=10000 && y<=1000000000) si iau Killed By Signal 6 Brick wall

L.E .Am gasit o greseala in programul meu si de aia luam 0 pct.Oricum ramane valabila observatia ca exista unele teste care au y > 100000000.

O seara placuta!!!!
« Ultima modificare: Octombrie 30, 2012, 22:02:44 de către Vasilut Lucian » Memorat
DEYDEY2
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 49



Vezi Profilul
« Răspunde #29 : Ianuarie 17, 2013, 17:58:56 »

pfff la problema asta chiar nu imi dau seama ce ar putea fi gresit d'oh! fac ca si in descriere si nici macar un test nu puncteaza, desi testele care mi le-am dat eu merg. Vreo sugestie/idee? Very Happy
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #30 : Ianuarie 17, 2013, 19:49:58 »

Incearca sa rezolvi problemele si singur. Nu prea te ajuta daca primesti de fiecare data teste Smile
Memorat
DEYDEY2
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 49



Vezi Profilul
« Răspunde #31 : Ianuarie 18, 2013, 16:43:13 »

nu am cerut teste... am cerut o idee...
Memorat
Sagunistu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #32 : Noiembrie 29, 2013, 21:36:06 »

De ce nu merge codul acesta?
Cod:
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

long long cmmdc(long long a,long long b)
{
    long long c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}

int main()
{
    ifstream fin("divmul.in");
    ofstream fout("divmul.out");
    long long t,i,x,y,k,a,b,c,nr;
    long long prod;
    fin>>t;
    for(k=1;k<=t;k++)
    {
        nr=0;
        fin>>x>>y;
        prod=x*y;
        for(i=1;i*i*x*x<=prod;i++)
        {
            a=i*x;
            if(prod%a==0)
            {
                b=prod/a;
                c=cmmdc(a,b);
                if(c==x&&a*b/c==y)
                {
                    nr+=2;
                    if(a*a==prod)
                        nr--;
                }
            }
        }
        cout<<nr<<"\n";
    }
    return 0;
}
Memorat
ovidiuz98
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #33 : Iunie 17, 2014, 23:22:05 »

Am facut problema cum scrie in articol,insa iau TLE.
Ma poate ajuta cineva ?

#include <fstream>
#include <cmath>

using namespace std;
long int t,n,x,k,y,nr,i,v[50500],a[50500],x1,yy;
int main()
{
    ifstream f("divmul.in");
    ofstream g("divmul.out");
    f>>t;
    for(k=1;k<=t;k++)
    {
        f>>x>>y;x1=x;yy=y;nr=0;
        for(i=2;i<=sqrt(x) && x1>1;i++)
            while(x1%i==0) v++,x1/=i;
        if(x1==x) v[x1]=1;
        for(i=2;i<=sqrt(y) && yy>1;i++)
        {
            if(v) a=v,yy/=pow(i,v);
            while(yy%i==0) a++,yy/=i;
            if(a>v) nr++;
            a=0;v=0;
        }
        g<<(1 << nr)<<'\n';
    }
    f.close();g.close();
    return 0;
}

Memorat
Vman
Echipa infoarena
Vorbaret
*****

Karma: 45
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #34 : Iunie 18, 2014, 00:18:18 »

In primul rand scoate sqrt() din for. Conditia aia se evalueaza la fiecare pas, iar radicalul e o operatie foarte lenta. In plus cred ca ai putea sa te opresti cand i*i > x1, pentru ca altfel x1 % i nu va fi niciodata 0. La fel si pt y.
Cu v si a nu prea ma prind care e treaba ca sunt declarati vectori dar sunt folositi ca variabile...
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #35 : Iunie 18, 2014, 00:33:54 »

Nu le foloseste ca variabile, dar daca nu lasi spatii "[i ]" inseamna italics  Smile
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines