Informatică, întrebare adresată de aliceleftwonderland, 9 ani în urmă

n-numar natural cu maxim 9 cifre
subprogramul "divizor" returneaza prin parametrul d c.m.m.d prim al lui n, iar prin parametrul p puterea la care acest divizor apare la descompunerea in factori primi a lui n.

Răspunsuri la întrebare

Răspuns de chisebogdan
1
#include <iostream>
#include <fstream>
using namespace std;
void divizor(unsigned n, unsigned &d, unsigned &p)
{   
unsigned a[3000],i, t, aux=n; 
  for(i=0; i<2999; i++)   
       a[i]=0;   
   while(n%2==0)   
{       
    a[2]++;     
    n=n/2;    } 
    t=3; 
     while(n>1)   
 {       
      while(n%t==0)     
      {           
        a[t]++;   
         n=n/t;       
        }     
       t=t+2;   
     }   
      for(i=2; i<=aux; i++)   
           if(a[i]>0)       
     {           
         d=i;   
         p=a[i]; 
      }
}
int main()
{    ifstream f("fisier.txt"); 
     unsigned n, d=0, p=0; 
       f >> n;   
      divizor(n, d, p); 
       cout << d << " " << p; 
       return 0;
}
Alte întrebări interesante