Asta e problema de calculator.Cel mai corect le citesti intr-un fisier.
un program mai avansat ar fi sa definesti o functie p(x) care sa dea valoare de adevar pentru numere prime.
Pe un ciclu de for preferabil se verifica pentru numerele permutate daca sunt prime si se scriu in fisier daca au valoarea true.
Pentru permutarea cifrelor unui numar de 3 cifre se face cam asa:
Se scrie N=N%10 +[N/10]%10*100+[N/100]*10 //aici se permuta primele 2 cifre % este restul la impartirea cu 10 deci N%10 da ultima cifra si [ ] e partea intreaga.
Edit:
Am realizat acel progam si am rezolvat prima parte permutand primele 2 am primit urmatorul rezultat:
211;29;523;139;431;47;541;743;157;359;853;761;83;487;193;
e copy paste exact cum le am scris in fisier.apare pe acolo si de 2 cifre din cauza lui 0 eliminam 29 47 si 83 si avem o parte de solutii.
si cu permutand ultimile 2 avem :
101;167;257;347;571;593;661;683;617;751;773;863;953;997;
am sa prezint si programul pentru cei curiosi:
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int prim(int n,int i)
{
if (i==1) return 1;
else return (n%i!=0) && prim(n,i-1);}
int main()
{
int j,n;
ofstream f("date.out");
for (j=10;j<91;j++)
{
n=11*j;
n=n%10*10+n/10%10+(n/100)*100;
if (prim(n,sqrt(n))) f<<n && f<<";";}
f.close();
return 0;
}