Informatică, întrebare adresată de CenturaX, 9 ani în urmă

Se da de la tastatura un numar natural cu cel mult 9 cifre.Se cere sa se determine cel mai mare numar mai mic sau egal cu nr dat si care are ultimele doua cifre prime.Ex:pentru numarul 4034 se va afisa numarul 4033.

Răspunsuri la întrebare

Răspuns de HariSeldon
1
#include <iostream>
using namespace std;

int ePrim( int x)
{
  int d = 2;
  while(d<=x/2)
  {
    if(x%d==0)
       return 0;
    d++;
  } 
  return 1;
}

long raspuns ( long x )
 {
   int ultimaCifra = x%10, penultimaCifra = (x/10)%10;
   x/=100;
   while( ePrim(ultimaCifra) == 0)
   { ultimaCifra--;
   }
   while(ePrim(penultimaCifra)==0)
  { penultimaCifra--;
  }
  x= x*10 + penultimaCifra;
  x = x*10 + ultimaCifra;
 return x;
}
int main ()
{
  long x;
  cout<<"Dati x ";
  cin>>x;
  cout<<raspuns(x);
}
Alte întrebări interesante