![[no-alignment]](https://happyobo.github.io/assets/images/post-programmers/04.png)
using System;
class Solution
{
int count = 0;
int[] nums;
public int solution(int[] nums)
{
this.nums = nums;
dfs(0, 0, 0);
return this.count;
}
public void dfs(int count , int sum, int currIdx)
{
if (count == 3)
{
if(IsPrime(sum))
this.count++;
}
else
{
for (int i = currIdx; i < nums.Length; i++)
dfs(count + 1, sum + nums[i], i + 1);
}
}
public static bool IsPrime(int number)
{
if (number <= 1) return false;
if (number == 2) return true;
if (number % 2 == 0) return false;
var boundary = (int)Math.Floor(Math.Sqrt(number));
for (int i = 3; i <= boundary; i += 2)
if (number % i == 0)
return false;
return true;
}
}