Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Un pitic pasionat de numere trebuie să-și pună flori în grădină. El are de plantat m rânduri cu flori, aceeași floare pe tot rândul. Rândurile sunt numerotate de la 1 la m. Având la dispoziție suficiente specii de flori, piticul nostru s-a gândit să le planteze folosind următorul algoritm matematic: pe rândurile care sunt numere prime, va planta exact floarea numerotată cu numărul prim respectiv, iar pe celelalte rânduri va planta floarea numerotată cu suma divizorilor primi ai numărului neprim.

Cerința
Să se realizeze un program care să afişeze ordinea de așezare a florilor pe cele m rânduri.

Răspunsuri la întrebare

Răspuns de stassahul
3
2 functii efective si n-ai ce face:

#include <fstream>

using namespace std;

ifstream fin("pitic.in");
ofstream fout("pitic.out");

int prime(int a);
int sumdivprim(int n);
int m;

int main()
{

    fin >> m;

    for(int i=1;i<=m;i++)
        fout << sumdivprim(i) << " ";

    return 0;

}
int prime(int a)
{
   int i;
   if(a==2)
      return 1;
   if(a==0 or a==1 or a%2==0)
      return 0;
   for(i=3;i*i<=a and a%i;i+=2)
      ;
   return i*i>a;
}
int sumdivprim(int n)
{
    if(prime(n))
        return n;
    int s=0;
    for(int i=2;i<=n/2;i++)
        if(prime(i) and n%i==0)
            s+=i;
    return s;
}



Utilizator anonim: Mersii, 100 de p pe pbinfo.
stassahul: Pai acolo si am verificat :). In viitor te rog sa pui si numarul la problema de pe pbinfo sa o gaseasca rapid orice utilizator.
Utilizator anonim: Ok. Mersi again.
Alte întrebări interesante