[C++] Programma che conta numeri primi

di il
2 risposte

[C++] Programma che conta numeri primi

Salve a tutti,
devo realizzare un programma che conta i numeri primi compresi tra il numero 1 e il numero n dato in input.
Ho provato a scrivere il programma in C++ ma mi va in input infinito, mentre su carta con i diagrammi a blocchi sembra funzionare.
Secondo voi cos'è che non va? Grazie in anticipo!
#include <iostream>
using namespace std;
int main ()
{
	int n;
	cout<<"Digita fino a che numero vuoi arrivare: "<<endl;
	cin>>n;
	for (int i=1; i<=n; i++)
	{
		cout<<"i="<<i<<endl;
		for (int a=1; a<i; a++)
		{
			cout<<<<a<<endl;
			if (i%a==0)
			{
				if (a>1 && a==1)
				{
					cout<<i<<endl;
				}
			}
		}
	}
	system ("pause");
	return 0;
}

2 Risposte

  • Re: [C++] Programma che conta numeri primi

    Questo penso sia un errore di digitazione:
    cout<<<<a<<endl;
    Questo non capisco che senso abbia:
    if (a>1 && a==1)
    se a è maggiore di 1, non può essere uguale a 1... Quindi quell'espressione è sempre falsa.
    PS: a ma non va in loop, conta da 1 a N, stampa i numeri (tutti) ed esce.
    PPS: ovviamente, NON trova i numeri primi, e sul perché dovresti ragionarci un atttimo.
  • Re: [C++] Programma che conta numeri primi

    Inoltre per trovare i numeri primi minori di n potresti anche ricorrere al crivello di Eratostene.
Devi accedere o registrarti per scrivere nel forum
2 risposte