• - -

Devc++

DeletedUser36180

Ospite
C'è qualcuno che ne sa qualcosa? Io sono alle basi e avrei bisogno di una mano per una cosa semplicissima per qualcuno che ne sa ahahah
 

tebevama

Granduca
Numero di reazioni
1.942
Dipende cosa intendi per semplicissima :D

Comunque qualsiasi cosa che riguardi il dev o la programmazione in generale di solito si trova sempre su google :)
 

DeletedUser36649

Ospite
Scrivimi pure se hai bisogno, se é davvero semplice posso aiutarti, altrimenti si, c'è sempre google.
 

DeletedUser38987

Ospite
Dev è un semplice IDE molto semplice da usare :D

E' da un po che non lo uso ma se serve chiedi pure
 

DeletedUser36180

Ospite
Sostanzialmente devo fare un algoritmo in modo che se inserisco un qualsiasi numero, mi dice i divisori di questo numero. E questo ce l'ho.. Ora devo aggiungere la condizione che mi stampi solo i divisori primi..

Non voglio che mi scrivete tutto il programma, vorrei capire come fare per identificare i primi.. Cioè le condizioni per cui un numero sia primo io le avevo pensate così:

x: numero che inserisco io
j: divisori del numero (quindi i numeri per cui x/j da resto 0)

e per i primi avevo pensato: j/z da resto zero, con z=1 o =j

potrebbe andare?
 

DeletedUser38987

Ospite
Per i numeri primi, così ad occhio, non mi viene in mente un altro algoritmo per identificarli, quindi si fai in quel modo, mi sembra una buona soluzione.


a=6; //non ricordo il codice per fare l'input

if (a>0) cout<<1; //il ciclo successivo ritorna tutti i valori tranne 1.

for( int i=1; i<a+1; i++ )
if (a%i==0)
{
for( int j=1, int y=0; j<i; j++ )
if (i%j==0) y++;
if (y==1) cout<<i;
}

// ti tornerà 2,3

Prova, non sono certo che funzioni, ho scritto qui non l'ho testato ;)
 
Ultima modifica di un moderatore:

tebevama

Granduca
Numero di reazioni
1.942
Non saprei, io farei un for che ti prova tutti i divisori da 2 al divisore -1 (ripetuto per tutti i divisori). Se ci sono non è primo, se non ci sono il numero è primo e stampi.
Conoscendo solo le basi mi è venuto in mente questo ma sono sicuro che esistano metodi molto più veloci.
 
Ultima modifica:

DeletedUser31687

Ospite
aggiungerei che per vedere se è primo conviene provare tutti i divisori fino a divisore/2 piuttosto che fino a divisore-1
 
Ultima modifica di un moderatore:

DeletedUser38987

Ospite
che materia?

testami il mio pezzo di codice, ora sono curioso di sapere se va :|
 

DeletedUser36649

Ospite
Trovare i numeri primi? È uno dei problemi del millenio.
 

DeletedUser3792

Ospite
Con dev c ++ puoi fare i programmi sia in c che in c++.
Ti va bene anche in c il programma?
 

DeletedUser36649

Ospite
Sostanzialmente devo fare un algoritmo in modo che se inserisco un qualsiasi numero, mi dice i divisori di questo numero. E questo ce l'ho.. Ora devo aggiungere la condizione che mi stampi solo i divisori primi..

Non voglio che mi scrivete tutto il programma, vorrei capire come fare per identificare i primi.. Cioè le condizioni per cui un numero sia primo io le avevo pensate così:

x: numero che inserisco io
j: divisori del numero (quindi i numeri per cui x/j da resto 0)

e per i primi avevo pensato: j/z da resto zero, con z=1 o =j

potrebbe andare?

Una volta avuti i divisori devi semplicemente interrogarli se sono primi o meno è successivamente stamparli.

Io li salverei in un array, per poi interrogare l'array,

Per controllare che sia primo prendi spunto da questo:

for ( i = 2 ; i <= (int)sqrt(n) ; i++ )
 

DeletedUser38987

Ospite
Salvarli su un array è ridondante e limitativo:
La struttura dati è evitabile e in base alla dimensione con cui la dichiari ti limita poi dei valori. Fare un array dinamico è un esagerazione.

______________________________________________________
Per i numeri primi, così ad occhio, non mi viene in mente un altro algoritmo per identificarli, quindi si fai in quel modo, mi sembra una buona soluzione.


a=6; //non ricordo il codice per fare l'input

if (a>0) cout<<1; //il ciclo successivo ritorna tutti i valori tranne 1.

for( int i=1; i<a+1; i++ )
if (a%i==0)
{
for( int j=1, int y=0; j<i; j++ )
if (i%j==0) y++;
if (y==1) cout<<i;
}

// ti tornerà 2,3

Prova, non sono certo che funzioni, ho scritto qui non l'ho testato ;)

Testato, è funzionante :D:

Codice:
public class Divisoriprimi
{
    public static void main(String[] args)
    {
    int a=651; //non ricordo il codice per fare l'input

    if (a>0) System.out.println("1"); //il ciclo successivo ritorna tutti i valori tranne 1.
    int j=1;
    int y=0;


    for( int i=1; i<a+1; i++ )
        if (a%i==0)
        {
        for( j=1, y=0; j<i; j++ )
            if (i%j==0) y++;
            
        if (y==1) System.out.println(i);
        } 
     }
}

E' in Java, devi solo tradurlo.. purtroppo non ricordo bene come si fanno alcune cose in C++
 
Ultima modifica di un moderatore:

DeletedUser36180

Ospite
E comunque non conosco quei codici ahahahah noi siamo all'inizio quindi sappiamo solo i comandi base.. Tipo for, while, ecc..
 

DeletedUser36180

Ospite
Sisi infatti oggi prima mi sono messo a trovare un algoritmo per i numeri primi, poi lo inserirò all'interno dell'altro :)

Solo che ripeto ne capisco poco, quindi devo fare tutti i passaggi guardando la teoria ahahah
 

DeletedUser38987

Ospite
anche il mio, ci sono solo for e if :D

se capisce l'algoritmo puo prenderlo da spunto, inutile dire fai questo e fai quello, guarda il codice e capisci
 
In cima