konu benimle değil bir arkadaşımla ilgili. aşağıdaki örnek kodlar çalışmıyormuş belkide bilen birinin dokunmasıyla çalışabilir

şimdiden teşekkürler..
Örnek olarak 7331 (4 basamaklı) bir asal sayı. en sağdaki rakamı yani 1'i kesersek geriye 733 kalıyor buda asal sayıdır. yine en sağdaki sayıyı 3'ü kesersek 73 kalır buda asal sayıdır. bundan da en sağdaki sayıyı kesersek yani 3'ü, geriye 7 kalır ki bu da asal sayıdır. bunlara superprime deniyor.
bizden istenen N basamaklı (yani basamak sayısını bilmiyoruz)bir asal sayının yukarıda ki gibi sağdan kese kese tek basamaklı hale getirirken hepsini bize asal sayı vermesini sağlamak.
[asal sayı; sadece ve sadece kendine ve 1'e bölünebilen sayılara denir]
bu soru c programında yazılacakmış c++ da değil.
ben internette birşeyler buldum ama bu c programında çalışmıyor.
temel olarak yapısı yardımcı olabilir diye düşündüm.
İlgilendiğiniz için teşekkür ederim.
#include <fstream.h>
#include <math.h>
long nums[10000];
int left = 0, right = 4;
int isprime(long n);
int main()
{
int maxi, maxleft;
long tenN;
ifstream infile(" INPUT.TXT");
ofstream outfile("OUTPUT.TXT");
infile >> maxi;
nums[0] = 2;
nums[1] = 3;
nums[2] = 5;
nums[3] = 7;
for(int index = 1; index < maxi; index++)
{
for(maxleft = right; left < maxleft; left++)
{
tenN = 10*nums[left];
if(isprime(tenN + 1)) nums[right++] = tenN + 1;
if(isprime(tenN + 3)) nums[right++] = tenN + 3;
if(isprime(tenN + 7)) nums[right++] = tenN + 7;
if(isprime(tenN + 9)) nums[right++] = tenN + 9;
if(right >= 9990)
{
outfile << "John didn't think he had to make his queue cycle!";
return 0;
}
}
}
for(; left < right; left++)
outfile << nums[left] << endl;
return 0;
}
int isprime(long n)
{
int hi = sqrt

, i;
if(n%3==0) return 0; // We already know there are no evens.
for(i = 5; i < hi; i+=6) // Check for only those numbers not divisible
if(n%i==0) // by two or three.
return 0;
for(i = 7; i < hi; i+=6)
if(n%i==0)
return 0;
return 1;
}