Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: divizori primi  (Citit de 4824 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ORazvan
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Noiembrie 03, 2016, 03:37:20 »

Salut, problema imi cere urmatoarea chestie:  

Se citeste de la tastatura un numar natural nenul n, apoi se citesc succesiv n valori intregi. Scrieti un program care sa verifice daca oricare numar dintre cele n citite are un numar impar de divizori primi.

Cod:
#include<iostream>
using namespace std;
int main(){

    int n,i,x,dp,gasit=0;
    bool prim=false;
    cout<<"n=";
    cin>>n;
    for(i=0;i<n;i++){
         cin>>x;
         dp=0;
         prim=false;
         for(i=2;i<x;i++){
            if(i==2){
                prim==false;
            }
            else if(i%2==0){
                prim=false;
            }
            else{
                prim=true;
            }
            if(prim==true && x%i==0){
                dp++;
            }
         }
         if(dp%2!=0){
            gasit=1;
         }
    }
    if(gasit){
        cout<<"Da";
    }
    else
        cout<<"Nu";
}

Daca bag de ex: n=2, ma lasa sa bag decat un x, la al doilea x ma scoate...Va rog ajutati-ma!!!Multumesc.
« Ultima modificare: Noiembrie 03, 2016, 03:43:32 de către Orban Razvan Alexandru » Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #1 : Noiembrie 03, 2016, 16:12:24 »

Refolosesti variabila i in al doilea for.
Memorat
ORazvan
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #2 : Noiembrie 04, 2016, 10:31:08 »

Mersi mult de tot, nu am fost atent.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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