программирование в си++
#5
Отправлено 30 сентября 2009 - 15:33
xxx: привет! чем занимаешься?
yyy: пятый час сайт делаю для твоего зачета...
xxx: ооо... Ванечка ты самый лучший друг!
xxx: <Спасибо большое!> Удачи </Спасибо большое!>
yyy: <Пошла На Хуй!> Спасибо </Пошла На Хуй!>
<Svettik> приветик, можешь мне пожалуйста лабораторную помочь решить
<Jon`> првет…хочешь всю правду?
<Svettik> какую правду
<Jon`> во 1 — когда ты говоришь помочь — это нифига не помочь, а полностью решить, и еще начертить блок схему и обяснить как всё это работает во 2 — уже на протяжении 3 месяцев как я с тобой знаком, решаю тебе каждую неделю по несколько лаб, задач и тд. Я часто абалдевал с этих задач, наверно потому что ты учишься в вышке и там такой уровень, а я в средухе…. Но я запрягал друзей, когда сам не мог разобратся в коде, писал на форумах, спамил в хабе даже,…бывало тратил несколько часов, сидел весь вечер, понимая что ты в этом нифига не шаришь и тока на меня вся надежда. ПОтом я торчал(и сейчас даже до сих пор торчу) тем кто мне помог или ты хули думала всё так просто за спасибо? Да, ты мне всегда говарила огромное спасибо, смайлики там ставила и всякую теорию. ДА, зачет по вышмату у тебя автоматом…зачет по дискретки у тебя автоматом…всё холодись я рад за тебя честно. Я конечно не требовал чтоб ты мне дала за эту всю помощь, ты же приличная девушка. Но блять даже не было при встречах накакой награды там или намека…просто блять как друзья…
<Svettik> У тебя неудачный день выдался?
<Jon`> нет всё холодись, только решай сама свои ебнутые задачи
По часам только таблетки надо принимать! А властвовать и унижать можно в любое время!
#9
Отправлено 01 октября 2009 - 07:50
Какая тут математика?математике я слаб
Диапозон маленький, числа маленькие. Можно тупо перебрать для каждого числа все делители, сложить, получить сумму, проверить попадает ли в диапозон. Где математика? Это при условии 200-300
Правда для более крупных чисел - уже от 10к хорошо бы придумать что-нибудь получше )
Joga Bonito!
#12
Отправлено 05 октября 2009 - 18:29
#include <iostream> using namespace std; int main() { setlocale(0,"");//чтобы отображались русские символы cout<<"Программа для нахождения дружественных чисел в диапазоне от 200 до 300"<<endl; int a=200,b=300;//диапазон чисел int s1=0;//сумма делителей для первого числа int s2=0;//сумма делителей для второго числа do{for(int i=1;i<a;i++) if(a==i*(a/i)) s1=s1+i; for(int i=200;i<=300;i++) if(s1==i) {for(int i=1;i<s1;i++) if(s1==i*(s1/i)) s2=s2+i; if(s2==a) if(s1<s2)//чтобы не повторялись числа cout<<s1<<" и "<<s2<<" являются дружественными числами."<<endl; } a++;//переходим к следующему элементу s1=0;//обнуляем s2=0;//обнуляем }while(a<=b); system("pause"); return 0; }
Интересно на каком курсе задают такие задачи?.
Сообщение изменено: svekla (05 октября 2009 - 18:30 )
#21
Отправлено 15 октября 2009 - 14:04
В этом случае необходимо будет находить делители из указанного промежутка путем нахождения частного от числа и найденного делителя из (0, sqrt(a)]. Хотя, для диапазона больших чисел, производительность налицо, ибо уменьшение кол-ва итераций с a/2 до sqrt(a) с лихвой перекрывает затраты для нахождения делителей путем деления. Это еще раз доказывает:
Даже в столь простой задаче есть возможность усовершенствования алгоритма для увеличения скорости его работы.
ЗЫ: ИМХО, единицу также не стоит рассматривать как делитель, хотя это нужно уточнять по заданию.