Grazie ho sistemato alcune cose in questo nuovo codice,
però risolto questo problema rimangono gli altri 2 e sene è aggiunto un altro, ossia che dopo aver inserito a, b non mi appare niente a schermo (a=13 e b=14 quindi non deve fare neanchela fattorizzazione in fattori primi dato che se a=primo mi dovrebbe dare subito MCD :1) ma così non è.
Volevo rettificare una cosa: i numeri primi che cerca sono i primi 1'000 e non i primi 100'000 come affermato in precedenza.
faccio apparire i numeri primi a schermo solo in questa bozza di programma, perchè in quello completo non dovrà apparire.
codice:
//Calcolo del MCD usando il metodo tradizionale
#include<stdio.h>
main()
{
int a, b,i, j, primo, MCD;
printf("Calcolo del MCD tra 2 numeri:\n\n");
for (i=2; i<=100; i++)
{
primo= 0; //Inizializzazione della variabile primo
for(j=2; j<i; j++)
{
if(i%j!=0)//Scorre tutti i divisori del numero i(dal numero 2)
{
primo++;
}
}
if (primo==i-2)
{//Se tutti i numeri precedenti(all'i-esimo numero) divisi per l'i-esimo numero
//hanno dato resto diverso da 0
printf("%d\t", i); //Allora l'i-esimo numero è un numero primo
}
}
printf("\n");
printf("Inserire il primo numero intero non negativo:\n");
scanf("%d",&a);
printf("Inserire il secondo numero intero non negativo:\n");
scanf("%d",&b);
if(a==b)
{
MCD=a;
printf("Il MCD tra %d e %d e\':%d",a,b,MCD);
}
else
{
if(a==primo)
{
printf("Il MCD tra %d e %d e\':1",a,b);
}
else
{
if(b==primo)
{
printf("Il MCD tra %d e %d e\':1",a,b);
}
else
{
//Fattorizzare in numeri primi
}
}
}
system("PAUSE");
}