最近我已经开始自己学习编程了,我想出了这个我正在努力解决的问题。作为输入,我有一个整数 N ,可以是2到9之间的任何值。 N - 是我的最终超级素数中的位数。根据这个问题,超级素数是当我删除最后一个数字时,它本身也是素数,余数必须是素数等等,直到我只剩下一个数字。我必须打印所有超级素数,包含N个数字。问题是我不知道如何生成一个具有N个数字的数字 这就是它应该是:
Input:
7
Output:
2339933
2399333
2939999
3733799
5939333
7393913
7393931
7393933
我得到的是23和29重复多次。 如果有人可以帮助我,我将非常感激。
void makeNumber(int &num, int&di, int&num1 )
{
num1=num*10+di;
}
void generatedigit (int &n, int &num, int middle[], int&di, int&num1, int &endlen)
{
for(int j=endlen; j<n;j++){
for(int i=0;i<4;i++)
{
di=middle[i];
makeNumber(num, di,num1);
if(!isPrime(num1)) {endlen++; generatedigit(n,num,middle,di,num1,endlen); cout<<num1<<endl;}
}
}
}
int main(){
int n,di;
cin>>n;
int num,num1,endlen;
endlen=1;
int firstnum[4]={2,3,5,7};
int middle[4]={1,3,7,9};
for(int i=0;i<4;i++)
{
num=firstnum[i];
generatedigit(n,num,middle,di,num1,endlen);}
}