infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Petronel Catalin Joldescu din Octombrie 27, 2013, 22:05:18



Titlul: Factori primi
Scris de: Petronel Catalin Joldescu din Octombrie 27, 2013, 22:05:18
Salut. Dati-mi o idee cum as putea crea un program c++ care descompune un nr n in factori primi. Am incercat sa creez un vector cu factorii primi de la 2 la n ( n nr citit de la tastatura) si apoi ... daca n%V==0, cout<<V... dar nu imi afiseaza ceea ce doresc. O idee sau o secventa de cod, va rog?


Titlul: Răspuns: Factori primi
Scris de: Prehari Romica din Octombrie 28, 2013, 15:31:36
Daca parcurgi cu un for(i=1;i<=n;i++) vectorul de numere prime, cand gasesti un divizor scrie i--; ca mai incerce inca o data acel divizor. 

Eu am facut altfel:

Cod:
#include<iostream>
using namespace std;

int n,div[1000000],i,j,m;

int main(){
   
    cin>>n;
    m=n;
    i=2;
    while(n!=1){
        if(n%i==0){
            div[i]++;
            n/=i;
        }
        else
            i++;
    }
    cout<<m<<"=";
   
    for(i=2;i<=m;i++)
        if(div[i]){
            cout<<i<<"^"<<div[i]<<"*";
        }
   
    return 0;
}