Non riesco a capire dove vuoi arrivare col flow chart... Certo pu� aiutare per inziare a ragionare sul problema ok, ma poi credo va messo da parte.
Ad ogni modo dai un'occhiata al Crivello di Eratostene, puoi procedere con le cancellazioni che � una versione ottimizzata dell'algo.
Una versione semplice e non ottimizzata pu� essere quella senza cancellazione:
praticamente avendo due numeri a e b vogliamo calcolare nell'intervallo (ordinato quindi) quanti primi ci sono. Ok . La condizione di un numero primo �? Banalmente un numero � primo se � divisibile SOLO per 1 e per se stesso.
Eliminer� la verifica della divisibilit� per 1 perch� sempre vera e verificher� invece con l'aiuto di un contatore se ho un solo divisore, quindi se � divisibile solo per se stesso.
Quindi direi 2 cicli innestati in cui valuto se l'elemento
array[i] mod j == 0
contatore++;
alla fine del ciclo pi� innestato (indice j) se avr� il contatore = 1 a quel punto dir� che [i] � un numero primo.
user� la condizione per cui se [i] >= a e [i] =< b lo salvo.