Divisore di una sequenza

Inserisci una sequenza di numeri interi di lunghezza n, con n scelta da input. Indica se all’interno della sequenza esiste un numero divisore di almeno un altro numero della stessa sequenza. Es. [2, 4,6,8,7] è ok per 8/2 [4,6, -8, 10] è ok -8/4 [2,-5,3,7,11] non è ok

Il codice non è complesso. Non sono state usate funzioni. Semplicemente, c’è un primo ciclo che si occupa di leggere/caricare da input il vettore in base all’inserimento preventivo del quantitativo di dati da inserire. La parte principale è il doppio ciclo: prendo ogni singolo elemento del vettore e lo verifico con tutti gli altri elementi.

/**
* Inserisci una sequenza di numeri interi di lunghezza n
* Indicare se all'interno della sequenza esiste un numero divisore di almeno 
* un altro numero della stessa sequenza
* es. [2, 4,6,8,7]  è ok per 8/2    [4,6, -8, 10] è ok -8/4    [2,-5,3,7,11] 
*/
#include <iostream>

using namespace std;

int main() 
{
  int sequenza[100];
  int n;
  bool trovato = false;
  int divisore;

  cout << "Quanti elementi vuoi inserire? ";
  do
  {
    cin>>n;
  }
  while(n <=0);

  for (int i=0; i < n; i++)
  {
    cout << "inserisci un elemento ";
    cin >> sequenza[i];
  }

  for(int i=0; i < n; i++)
  {
    //blocco un elemento e controllo tutti gli altri
    //con un secondi ciclo
    for(int j=0; j < n; j++)
    {
      if ((i != j) && (sequenza[j] % sequenza[i] == 0))
      {
        trovato = true;
        divisore = sequenza[i]; 
      }
    }
  }

  if (trovato)
    cout <<  "c'e' un divisore degli altri ->"<< divisore <<endl;
  else
    cout << "non c'e' divisore" << endl;

return 0;
}

Listati

Listato GitHub -> https://github.com/alfredocentinaro/esercizi-cplusplus/blob/main/divisore-sequenza/divisore-sequenza.cpp

Lancialo su Replit -> https://replit.com/@AlfredoCentina2/divisore-sequenza

Ultima modifica 26 Aprile 2022