int isSimple(int a)
{
int i;
for(i=2; i<=a/2; ++i)
{
if(a%i==0)
return 0;
}
return 1;
}
int main()
{
int a=0, i;
printf("Enter a: ");
scanf("%d", &a);
for(i=1; i<=a/2; ++i)
{
if(a%i==0&&isSimple(i))
printf("%d\n", i);
}
return 0;
}
Другие языки программирования и технологии
Объясните, пожалуйста, что за что в этой программе отвечает подробно. язык с ++
Я прошу прощения, но от этой программы у меня сейчас кровь хлынет из глаз. Я, конечно, понял, что же она делает, но легче мне не стало... На ввод поступает любое число (его еще зачем-то обнуляют в начале...), затем ищется делитель введенного числа и, если найденный делитель является простым числом, то его выводят на экран. Все просто.
Роман Волков
Автор молодец. Ему написали примерно то-же самое но конечно ответ г*вно, а не программа.
А что тут объяснять? Банальный говнокод, ищущий простые делители вводимого числа. Разбираться в этом убожестве не имеет смысла.
При поиске простого числа перебирать делители до a/2 - бессмысленная трата времени и машинных ресурсов. Проверять надо только до sqrt(a).
P.S. И, да: это чистейший С, не имеющий никакого отношения к С++.
При поиске простого числа перебирать делители до a/2 - бессмысленная трата времени и машинных ресурсов. Проверять надо только до sqrt(a).
P.S. И, да: это чистейший С, не имеющий никакого отношения к С++.
Это чистый С. Ни одного элемента C++ тут не используется.
Это C скорее, а не С++. И он ответил за всё. В "Вашей" программе =)
К слову плохой способ искать простые числа. Программу лучше переписать. Не сдадите Вы её в таком виде. Любой препод "докопается" сразу - зачем проверять четные, зачем вложенные (по факту) циклы. И они реально не нужны. А Вы (судя по программе) скорее всего не ответите.
Подробно:
целое этоПросто (целое а)
целое и
в цикле целое и=2 и пока цикл <=а пополам увеличивать и на 1
если целое а поделилось на и без остатка возвращаем 0
если цикл прошел и мы сюда попали - возвращаем 1
целое основа
целое а = 0
выводим Enter a:
считываем число в а
зачем-то крутим цикл аналогичный в этоПросто (а), но почему-то с
и если число поделилось без остатка (см. функцию этоПросто) и ещё раз - тогда выводим число
конец
К слову плохой способ искать простые числа. Программу лучше переписать. Не сдадите Вы её в таком виде. Любой препод "докопается" сразу - зачем проверять четные, зачем вложенные (по факту) циклы. И они реально не нужны. А Вы (судя по программе) скорее всего не ответите.
Подробно:
целое этоПросто (целое а)
целое и
в цикле целое и=2 и пока цикл <=а пополам увеличивать и на 1
если целое а поделилось на и без остатка возвращаем 0
если цикл прошел и мы сюда попали - возвращаем 1
целое основа
целое а = 0
выводим Enter a:
считываем число в а
зачем-то крутим цикл аналогичный в этоПросто (а), но почему-то с
и если число поделилось без остатка (см. функцию этоПросто) и ещё раз - тогда выводим число
конец
Похожие вопросы
- Помогите, пожалуйста, понять и исправить, что в программе не так, язык Си
- Для чего нужен указатель this и каков его принцип работы? Объясните пожалуйста самым простым языком, как 2+2.
- Причиной появления 99% дыр в программах, всех вирусов и троянов, является то, что эти программы написаны на языке Cи ?
- Объясните как работают программы. 2 задачи. Язык с++.
- Объясните, пожалуйста, человеческим (не википедийным языком) , что за язык XML?
- что в программе "Торент" делоют "сиды" и "пиры" их назначение,для чего нужны и т д (только понятно объясните пожалуйста)
- Помогите написать программу на любом языке программирования
- Какой язык программирования использует программа PureBusic? Какой язык программирования использует программа PureBusic?
- Будут ли программисты когда нибуть для создания программ использовать русскоязычные языки программирования?
- почему процессор компьютера не может исполнять программы написанные на языке программирования Basic или Pascal