Pentru a vă înregistra, vă rugăm să trimiteți un email către administratorul site-ului.
Pune o întrebare

3.6k intrebari

6.8k raspunsuri

15.5k comentarii

2.5k utilizatori

0 plusuri 0 minusuri
493 vizualizari
Cum aflaţi toate numerele de trei cifre divizibile cu 11 cu proprietatea că dacă permutăm între ele, fie primele două cifre, fie ultimele două cifre, obţinem numere prime ( din 3 cifre)?
Senior (5.0k puncte) in categoria Matematica
0 0
stiam ca a mai fost problema asta si am gasit acolo acuma programelul lui adijapan:D

Nu comentati pe programul meu:)) e in c++ eu nu am lucrat niciodata in c++ serios dar ma pricep .Inca am dificultati pe sintaxa si multe altele.
0 0
În ulltima vreme le cam zăpăcesc. Scuze pentru repetare.

1 Raspuns

1 plus 0 minusuri
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;

    }
Experimentat (2.3k puncte)
...