Где ошибка в коде? Программа пробегает по массиву и возвращает колличество простых чисел - C (СИ)
Формулировка задачи:
Где ошибка в коде??? Программа пробегает по массиву и возвращает колличество простых (2, 3, 5, 7 и тд.) чисел.
Смотрю в код и простоооооо не вижу, что тут плохо...
#include <stdio.h> int prime(int a) { int i; if (a == 2) { return 1; } if (a == 0 || a == 1 || a % 2 == 0) { return 0; } for(i = 3; i*i <= a && a%i; i+=2) { return i*i > a; } } int main() { int n, j, temp; int count = 0; int array[100]; scanf("%d", &n); for (j = 0; j < n; j++) { scanf("%d", &array[j]); } for(j = 0; j < n; j++) { temp = array[j]; if (prime(temp) > 0) { count++; } } printf("%d\n", count); return 0; }
Сам же ее и нашел. Может, кому пригодится...
#include <stdio.h> int prime(int a) { int i; if (a == 2) { a = 1; return a; } if (a == 0 || a == 1 || a % 2 == 0) { a = 0; return a; } for(i = 3; i*i <= a && a%i; i+=2) { a = 1; return a; } } int main() { int n, j, temp; int count = 0; int array[100]; scanf("%d", &n); for (j = 0; j < n; j++) { scanf("%d", &array[j]); } for(j = 0; j < n; j++) { temp = array[j]; if (prime(temp) > 0) { count++; } } printf("%d\n", count); return 0; }
Решение задачи: «Где ошибка в коде? Программа пробегает по массиву и возвращает колличество простых чисел»
textual
Листинг программы
#include<stdio.h> #include <math.h> int prime(int a) { int i; if (a == 2) return 1; if (a == 0 || a == 1 || a % 2 == 0) return 0; for(i = 3; i*i <= a && a % i; i += 2) ; return i*i > a; } int main (void) { int a; printf("Input range:"); scanf("%d", &a); printf("%d\n ", prime(a)); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д