Hero467
Utente Attivo
- Messaggi
- 692
- Reazioni
- 404
- Punteggio
- 74
In seguito ad una discussione sempre qui sul forum su un generatore di numeri di Armstrong mi accingo ora a provare a realizzare un crivello di Eratostene, fatto in C.
Il problema di suddetto programma è che non manda in output nessun numero e io, essendo impossibilitato di fare debug, non riesco a capire cosa non va
Il problema di suddetto programma è che non manda in output nessun numero e io, essendo impossibilitato di fare debug, non riesco a capire cosa non va
C:
#include <stdio.h>
void genPrimes(int *nums) {
int lenght = sizeof nums / sizeof nums[0];
nums[0] = 0;
for(int i = 0; i < lenght; i++) { // lo so che qui potrei fare tutto con un unico for, ma era un test
if(nums[i] % 2 == 0) {
nums[i] = 0;
}
}
for(int i = 0; i < lenght; i++) {
if(nums[i] % 3 == 0) {
nums[i] = 0;
}
}
for(int i = 0; i < lenght; i++) {
if(nums[i] % 5 == 0) {
nums[i] = 0;
}
}
for(int i = 0; i < lenght; i++) {
if(nums[i] % 7 == 0) {
nums[i] = 0;
}
}
for(int i = 0; i < lenght; i++) {
if(nums[i] != 0) {
printf("%d\n", nums[i]);
}
}
}
int main() {
int n;
printf("Inserisci fino a che numero devo generare numeri primi: ");
scanf("%d", &n);
int nums[n];
for(int i = 1; i < n; i++) {
nums[i - 1] = i;
}
genPrimes(nums);
}