Одесса: 10°С (вода 9°С)
Киев: 4°С
Львов: 10°С

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

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

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

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

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

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

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


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

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

  4. Вверх #4

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

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

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

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

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

  7. Вверх #7
    Добрый вечер, можно просто
    это делать через организацию 2 циклов...и все прекрасно получится-непосредственно вывод на экран всех этих чисел

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

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

  9. Вверх #9
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    30
    Сообщений
    900
    Репутация
    95
    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
    Частый гость
    Пол
    Мужской
    Сообщений
    677
    Репутация
    69
    Записей в дневнике
    10
    Цитата Сообщение от 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,080
    Репутация
    775
    Цитата Сообщение от MrJile Посмотреть сообщение
    121 - это простое число?
    Естественно! все числа, которые являются произведением нескольких простых чисел, каждое из которых больше 10 - это простые числа!
    Моя хата з найкращого краю в світі.

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

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

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

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

  15. Вверх #15
    #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 в 18:11.

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


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

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

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

Ваши права

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