👤

Vuli este un informatician foarte pasionat de triunghiuri și numere cu proprietăți interesante, aceste două pasiuni au dat naștere unui interes complet nou pentru el, triunghiurile de numere. În prezent, Vuli este interesat de triunghiul lui Pascal, mai exact, de numerele din triunghi de pe o anume linie k care sunt fabuloase (în concepția lui Vuli, un număr este fabulos dacă suma cifrelor numărului este un număr prim, sau este egală cu 1). Triunghiul lui Pascal ce generează astfel: P[0][0] = 1, P[i][j] = P[i - 1][j] + P[i - 1][j - 1]. Vuli este perfect capabil să elaboreze singur un algoritm pentru a determina șirul de numere fabuloase de pe linia k, dar acum este prins cu probleme mai complicate, așa că vă roagă pe voi să-l ajutați. Cerința Se cere să se afișeze în ordine crescătoare toate numerele fabuloase de pe linia k a triunghiului. Date de intrare

Răspuns :

#include
using namespace std;
int n, i, j;
long long c[42][42], x;
int sum(long long nr)
{
int s = 0;
while(nr)
{
s = s + nr % 10;
nr = nr / 10;
}
return s;
}
bool prim(int nr)
{
for(int p = 2; p * p <= nr; p ++)
if(nr % p == 0) return false;
return true;
}
int main()
{
ifstream f("vuli.in");
ofstream g("vuli.out");
f >> n;
c[1][0] = c[1][1] = 1;
for(i = 2; i <= n; i ++)
{
c[i][0] = c[i][i] = 1;
for(j = 1; j < i; j ++)
c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
}
for(j = 0; j <= n/2; j ++)
{
x = c[n][j];
if(prim(sum(x)) || sum(x) == 1) g << x << " ";
}
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!


Ez Studiers: Alte intrebari