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
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;
}
#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.
Alte întrebări interesante
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Biologie,
9 ani în urmă