Тема: Задачка на С

Ответить в теме
Показано с 1 по 16 из 16
  1. Вверх #1
    Посетитель Аватар для re1ax
    Пол
    Мужской
    Адрес
    Одесса , UA
    Возраст
    37
    Сообщений
    273
    Репутация
    34

    По умолчанию Задачка на С

    (мопед не мой , я просто разместил объяву)

    Знакомый учит Си и попросил помочь с алгоритмом к вот такой задачке :

    Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000 (Просто число - это число , которое делится без остатка только на себя и единицу. Единица не считается простым числом .)
    Условие довольно-таки тривиально , если бы не одно НО - до массивов он ещё не добрался , так что их использовать нельзя... Есть у кого какие мысли по реализации алгоритма программы без использование массива для хранения найденных простых чисел...

    P.S. Большая просьба посты типа "Зачем он учит Си? Пусть сразу начинает С# или <что-то другое>" не писать. Это его выбор. Он его уже сделал и пусть следует им. В данном топике я попросил помочь с алгоритмом программы , а не помочь с ответом на вопрос "что учить?". Заранее благодарен за понимание.
    Лети навстречу смерти , пока твоё место не занял кто-то другой... (ц) "Тринадцатый воин"


  2. Вверх #2
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    825
    А что в задаче сказано хранить числа в памяти?
    Там прямо говорится - выводите числа на экран.
    Последний раз редактировалось Newton; 30.03.2010 в 12:14.
    Моя хата з найкращого краю в світі.

  3. Вверх #3
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    Да ладно - мопед не мой, знакомый учит С, до массивов не добрался Cессия близка ведь так

  4. Вверх #4
    Новичок
    Адрес
    OdessA
    Сообщений
    32
    Репутация
    11
    Все уже придумано до нас
    http://ru.wikipedia.org/wiki/%D0%A2%...BE%D1%82%D1%8B

  5. Вверх #5
    Посетитель Аватар для re1ax
    Пол
    Мужской
    Адрес
    Одесса , UA
    Возраст
    37
    Сообщений
    273
    Репутация
    34
    LogruS
    Спасибо за ссылку.

    Fallout
    Твоё право не верить...

    Newton
    Нет , не сказано... Просто единственный алгоритм , до которого я додумался , это сохранение в памяти найденных простых чисел и проверка следующего числа на остаток от деления на все уже найденные...

    Всем спасибо за оказанную помощь...
    Лети навстречу смерти , пока твоё место не занял кто-то другой... (ц) "Тринадцатый воин"

  6. Вверх #6
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    825
    Так как сверху ограничены 1000, то можно просто проверять на остаток от деления всех чисел, которые меньше половины текущего числа.
    Получится порядка 500 * 250 операций деления и столько же сравнения.
    Моя хата з найкращого краю в світі.

  7. Вверх #7
    Новичок Аватар для N.A
    Пол
    Женский
    Сообщений
    39
    Репутация
    37
    Добрый вечер, можно просто
    это делать через организацию 2 циклов...и все прекрасно получится-непосредственно вывод на экран всех этих чисел

  8. Вверх #8
    Посетитель Аватар для re1ax
    Пол
    Мужской
    Адрес
    Одесса , UA
    Возраст
    37
    Сообщений
    273
    Репутация
    34
    Цитата Сообщение от N.A Посмотреть сообщение
    Добрый вечер, можно просто
    это делать через организацию 2 циклов...и все прекрасно получится-непосредственно вывод на экран всех этих чисел
    Можете нарисовать блок-схему сего алгоритма ??.. С небольшими пояснениями... Буду премного благодарен...

    Newton
    Можете намалевать блок-схему алгоритма ??...
    Лети навстречу смерти , пока твоё место не занял кто-то другой... (ц) "Тринадцатый воин"

  9. Вверх #9
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    36
    Сообщений
    821
    Репутация
    111
    for (var i=2;i=1000;i++){
    for (var j=2;j=9;j++)
    if (i%j==0 && i!=j)
    continue;
    print(i);
    }

    Подкоректировать в соответствии с синтаксисом СИ
    Еврейский SQL сервер отвечает запросом на запрос.

  10. Вверх #10
    Частый гость
    Пол
    Мужской
    Сообщений
    673
    Репутация
    71
    Цитата Сообщение от CrazySquirrel Посмотреть сообщение
    for (var i=2;i=1000;i++){
    for (var j=2;j=9;j++)
    if (i%j==0 && i!=j)
    continue;
    print(i);
    }

    Подкоректировать в соответствии с синтаксисом СИ
    121 - это простое число?

  11. Вверх #11
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    825
    Цитата Сообщение от MrJile Посмотреть сообщение
    121 - это простое число?
    Естественно! все числа, которые являются произведением нескольких простых чисел, каждое из которых больше 10 - это простые числа!
    Моя хата з найкращого краю в світі.

  12. Вверх #12
    Не покидает форум Аватар для -=TigeR=-
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    7,008
    Репутация
    1410
    Цитата Сообщение от Newton Посмотреть сообщение
    Естественно! все числа, которые ...
    т.е. википедии теперь можно и не верить...
    Список простых чисел

  13. Вверх #13
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    36
    Сообщений
    821
    Репутация
    111
    121 число не простое, оно делиться на 11
    Еврейский SQL сервер отвечает запросом на запрос.

  14. Вверх #14
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    825
    Цитата Сообщение от -=TigeR=- Посмотреть сообщение
    т.е. википедии теперь можно и не верить...
    Список простых чисел
    С википедией можно консультироваться, но верить ей нельзя.

    Цитата Сообщение от CrazySquirrel Посмотреть сообщение
    121 число не простое, оно делиться на 11
    А ваш алгоритм, похоже, говорит, что 121 простое...
    Моя хата з найкращого краю в світі.

  15. Вверх #15
    Новичок Аватар для N.A
    Пол
    Женский
    Сообщений
    39
    Репутация
    37
    #include<stdio.h>
    int main(){
    int i,j,flag,k=0;
    printf("\n prostye chisla v diapazone ot 2 do 1000");
    for(i=2;i<=1000;i++)
    {
    flag=0;
    for(j=2;j<i;j++){
    if(i % j==0){
    flag+=1;
    }
    }
    if (flag==0){k++;
    printf("%d):=%d ",k,i);
    }

    }
    getchar();
    }
    Последний раз редактировалось N.A; 02.04.2010 в 17:11.

  16. Вверх #16
    Не покидает форум Аватар для Fallout
    Пол
    Мужской
    Сообщений
    6,648
    Репутация
    822
    flag int, внутриний цикл весь всегда проганяется ....


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения