Witam!
Mam problem z zadaniem, którego treść brzmi:
Napisz program, który wypisuje wszystkie liczby pierwsze z przedziału <2;10000> , takie że ich suma cyfr jest równa 2n, gdzie n – jest ilością cyfr danej liczby.
Jestem w takim etapie zadania i nie wiem co robić dalej lub też czy mam jakiś zły zapis w kodzie. W pierwszej funkcji określam ilość cyfr danej liczby i ich sume cyfr. Funkcja main natomiast wyłapuje liczby pierwsze z przedziału (tzw. sito, które musi być w tym zadaniu!). Każdemu który wstępnie zajmie się moim problemem bardzo dziękuje :D .
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int x, n;
int warunek(int n){
int i=0;
do
{
n=n/10;
i++;
}while(n>0);
return i;
string b=to_string(n);
int dl=b.length();
int suma=0;
for (int i=0; i<dl; i++){
suma+=(int)(b[i])-48;
}
if(suma==2*n){
}
}
int main(){
cout<<"Podaj gorna granice: "<<endl;
cin>>n;
int i,j, g, k;
int *tab = new int[n];
for(i=0; i!=k; i++)
{
tab[i]=i;
}
g=floor(sqrt(k));
printf("\n----granica = %d \n", g);
for(i=2; i<g+1; i++)
{
if(tab[i]!=0)
{
j=i+i;
while(j<=k)
{
tab[j]=0;
j=j+i;
}
}
}
printf("\n Liczby piwerwsze to: ");
for (i=2; i<=k; i++)
{
if(tab[i]!=0) printf("%d ", i);
}
printf("\n");
return 0;
}