Đầu bài: Đếm số cách biểu diễn của 1 số nguyên thành tổng các số nguyên tố liên tiếp. Ví dụ :53 có hai cách là 5 + 7 + 11 + 13 + 17 và 53. 41 có ba cách 2+3+5+7+11+13, 11+13+17, và 41. Số 20 không có cách nào vì các biểu diễn như 7 + 13 và 3 + 5 + 5 + 7 không gồm các số nguyên tố liên tiếp.
int main()
{
// Sang so nguyen to.
int n = 100;
int f[1000],b[1000];
b[1] = 1;
f[1] = 0;
for (int i = 2; i < n; i++)
{
if(b[i] != 1)
{
f[i] = i;
for(int j = i * i; j < n; j += i)
{
b[j] = 1;
}
}
}
int l[100000];
int i = 0;
// vong lap de nhap toi 0 thi dung lai chuong trinh.
do
{
int dem = 0;
int tong = 0;
cin >> l[i];
// tinh so cach tinh tong cac so bang cac so nguyen.
for(int k = 2; k <= n; k++)
{
for(int h = k + 1; h <=n; h++)
{
if(tong < l[i])
{
tong = f[k] + f[h];
}
if(tong == l[i])
{
dem ++;
}
}
}
cout << " " << dem << endl;
}while(l[i] != 0);
return 0;
}