⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a315prim.cpp

📁 secondo esempi vari per c++ (schema base)
💻 CPP
字号:
// nuovi concetti: stringa vuota ("")
// nuovi elementi: const, bool
//**********************************************************************
//*                                                                    *
//*    Controlla se "n" e' un numero primo (2<=n<=nmax).               *
//*                                                                    *
//**********************************************************************
#include <iostream>

using namespace std;

const int NMAX = 10000;

bool datobuono (int& n, int massimo) {
  //*****************************************************************
  //*                                                               *
  //*    Ottiene il successivo dato valido, se esiste, saltando     *
  //*    eventuali valori che siano al di fuori dell'intervallo     *
  //*    permesso.  Il valore trovato, se c'e', ritorna attraverso  *
  //*    il parametro riferimento "n".  Se si preme ^Z, o si        *
  //*    introduce un carattere non accettabile come intero, la     *
  //*    funzione restituisce "falso".  Il parametro valore         *
  //*    "massimo" determina l'intervallo accettabile dei dati.     *
  //*                                                               *
  //*****************************************************************
  bool trovato = false;    // abbiamo trovato un "n" valido?
  while ( (!trovato) && (cin >> n) ) 
    if ( (n>=2) && (n<=massimo) ) trovato = true;
    else cout << n << " fuori limiti: ignorato\n";
  
  return trovato;
}  // datobuono

bool decidi (int n) {
  //****************************************************************
  //*                                                              *
  //*   Determina se "n" e' un numero primo.                       *
  //*   Questo sottoprogramma ha un parametro valore; usa due      *
  //*   variabili locali, ma non fa riferimento a nessuna          *
  //*   variabile globale.                                         *
  //*                                                              *
  //****************************************************************
  int provadivisore,         // possibili divisori di "n"
  limite= int(sqrt(float(n)));  // il piu' grande divisore possibile di "n"
  for (provadivisore = 2; (provadivisore<=limite) && (n % provadivisore);
      provadivisore++);
  return (provadivisore > limite);
}  // decidi

void mostra (int numero, bool estprimo) {
  //***************************************************************
  //*                                                             *
  //*   Mostra la decisione del programma ("estprimo") sul        *
  //*   numero corrente.  Questo sottoprogramma ha due parametri  *
  //*   valore;  non usa variabili locali ne' fa riferimento      *
  //*   a variabili globali                                       *
  //*                                                             *
  //***************************************************************
  cout << numero << (estprimo ? "" : " non")
    << " e' un numero primo" << endl;
}  // mostra

int main() {    // programma principale
  int n;           // il valore da controllare (dato)
  cout << "Controlla se numeri positivi non superiori a " << NMAX
    << " sono primi (^Z per finire):\n\n";
  while (datobuono(n,NMAX))
    mostra(n,decidi(n));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -