Вывести простые числа от 1 до 100 - C (СИ)
Формулировка задачи:
Добрый день,есть код,при компиляции которого должны выдаваться числа от 1 до 100.где-то внутри есть ошибка...не работает.
код состоит из трех отдельных,которые нужно соединить в один..честно говоря,не совсем рублю,как это нужно сделать.
первый:
#include <stdio.h>
#include "eratosthenes.h"
#define VELIKOST 100
int main(void)
{
int i, pole[RAZMER];
eratosthena_resheto(pole, RAZMER);
printf("vse prostye cisla menshie,chem %d :", RAZMER);
for (i = 0; i <= VELIKOST; i++)
if (pole[i])
printf(" %d", i);
printf("\n");
return 0;
}
вторая часть кода
#ifndef _ERATOSTHENES_H_ #define _ERATOSTHENES_H_ void eratosthena_resheto(int pole[], unsigned int razmer); #endif
и последняя часть.
#include <math.h>
void eratosthena_resheto(int pole[], unsigned int razmer)
{
int i, j, granica_sverhu = sqrt(razmer);
pole[0] = 0;
pole[1] = 0;
for (i = 2; i < razmer; i++)
pole[i] = 1;
for (i = 2; i < granica_sverhu; i++)
if (pole[i])
for (j = i*i; j < razmer; j += i)
pole[i] = 0;
}Решение задачи: «Вывести простые числа от 1 до 100»
textual
Листинг программы
void erat_sito(int pole[], unsigned int velikost)
{
int i, j, granica_sverhu = sqrt(velikost);
pole[0] = 0;
pole[1] = 0;
for (i = 2; i < velikost; i++)
pole[i] = 1;
for (i = 2; i < granica_sverhu; i++)
if (pole[i])
for (j = i*i; j < velikost; j += i)
pole[j] = 0;
}