# Program to print prime number pyramid

·1 min
Problem Solving Author
Mayukh Datta

I think you’ve already figured it out by looking at the above pattern that the numbers are all prime numbers. It takes number of lines $$(n)$$ as input and prints exactly $$n(n+1)/2$$ prime numbers. For example, if $$n=4$$ then we have $$4(4+1)/2 = 10$$ prime numbers in the pattern. Each line in the pattern has prime numbers exactly equal to the line number. For example, line 4 has 4 prime numbers, similarly, line 7 has 7 prime numbers.

$\therefore 1 + 2 + 3 + 4 +…+(n-1)+ n\\ = n(n+1)/2\\ or, \sum_{i=1}^{n} i = n(n+1)/2$

This follows the triangular number sequence.

C code:

#include<stdio.h> #include<stdbool.h> #include<math.h> bool isPrime(int n);

int main(void){ int n, i, j, p=2, r; printf(“Enter the no. of lines, n: “); scanf("%d”, &n); //rows for(i=1;i<=n;i++){ //no. of primes on each line for(j=i;j>=1;j–){ //if it’s a prime don’t increment it rather print it while(!isPrime(p)){ p++; } printf("%d “, p++); } printf(”\n”); } return 0; }

bool isPrime(int n){ long i; if(n<=1) return false; if(n==2) return true; if(n%2 == 0) return false; //even check

for(i=3; i<=sqrt(n); i+=2){ //increment by 2 to avoid checking odd nos.
if(n%i == 0){
return false;
}
}
return true;


}