# Consecutive Prime Sum - Tcs Previous Year Questions

Fri, 07 Aug, 2020

# Consecutive Prime Sum

Problem Description

Question – :  Some prime numbers can be expressed as a sum of other consecutive prime numbers.

• For example
• 5 = 2 + 3,
• 17 = 2 + 3 + 5 + 7,
• 41 = 2 + 3 + 5 + 7 + 11 + 13.
Your task is to find out how many prime numbers which satisfy this property are present in the range 3 to N subject to a constraint that summation should always start with number 2.

Write code to find out the number of prime numbers that satisfy the above-mentioned property in a given range.

Input Format: First line contains a number N

Output Format: Print the total number of all such prime numbers which are less than or equal to N.

Constraints: 2<N<=12,000,000,000

## C++ Solution

``````#include <iostream>
using namespace std;

int prime(int b)
{
int j,cnt;
cnt=1;
for(j=2;j<=b/2;j++)
{
if(b%j==0)
cnt=0;
}
if(cnt==0)
return 1;
else
return 0;
}
int main()
{
int i,j,n,cnt,a[25],c,sum=0,count=0,k=0;
cout<<"Enter a number : ";
cin>>n;
for(i=2;i<=n;i++)
{
cnt=1;
for(j=2;j<=n/2;j++)
{
if(i%j==0)
cnt=0;
}
if(cnt==1)
{
a[k]=i;
k++;
}
}
for(i=0;i<k;i++)
{
sum=sum+a[i];
c= prime(sum);
if(c==1)
count++;
}
cout<<count;
return 0;
}``````

## Solution in C language

``````#include  <stdio.h>

int prime(int b);
int main()
{
int i,j,n,cnt,a[25],c,sum=0,count=0,k=0;
printf("Enter a number : ");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
cnt=1;
for(j=2;j<=n/2;j++)
{
if(i%j==0)
cnt=0;
}
if(cnt==1)
{
a[k]=i;
k++;
}
}
for(i=0;i<k;i++)
{
sum=sum+a[i];
c= prime(sum);
if(c==1)
count++;
}
printf(" %d",count);
return 0;
}

int prime(int b)
{
int j,cnt;
cnt=1;
for(j=2;j<=b/2;j++)
{
if(b%j==0)
cnt=0;
}
if(cnt==0)
return 1;
else
return 0;
}``````

## Java Solution

``````import java.util.Scanner;
class Main {

static int prime(int b) {
int j,cnt;
cnt=1;
for (j = 2; j <= b/2; j++) {
if(b%j==0)
cnt=0;
}
if(cnt==0)
return 1;
else
return 0;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i,j,n=0,cnt,c=0,sum=0,count=0,k=0;
Main t = new Main();
int[] a = new int[25];
System.out.println("Enter no");
n = sc.nextInt();
for (i = 2; i <=n ; i++) {
cnt=1;
for (j = 2; j <= n/2; j++) {
if(i%j==0)
cnt=0;
}
if(cnt==1) {
a[k]=i;
k++;
}

}
for (i = 0; i < k; i++) {
sum=sum+a[i];
c=t.prime(sum);
if(c==1)
count++;
}
System.out.println(count);
}

}``````

## Python Solution

``````num = int(input())
arr = []
sum = 0
count = 0
if num > 1:
for i in range(2, num + 2):
for j in range(2, i):
if i % j == 0:
break
else:
arr.append(i)
def is_prime(sum):
for i in range(2, (sum // 2) +2):
if sum % i == 0:
return False
else:
return True
for i in range(0, len(arr)):
sum = sum + arr[i]
if sum <= num:
if is_prime(sum):
count = count + 1

print(count)``````