Форум программистов, компьютерный форум CyberForum.ru

Олимпиадная задача - сумма чисел меньших N, которые делятся на A или на B - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Олимпиадная задача - память Ватсона http://www.cyberforum.ru/cpp-beginners/thread843479.html
Условие Память Ватсона достигла критического состояния. Это означает, что все ячейки его памяти заполнились единицами. Рыбка узнала, что если всю память Ватсона считать одним большим шестнадцатеричным числом, то это число будет делиться на 7. Но не поверила и захотела проверить этот факт. Для этого Рыбка узнала у Ватсона, сколько ячеек в его памяти. Оказалось, что их очень много - таких больших...
C++ переделать программу из Pascal в С++ есть программа на паскале для поиска перевода слов в файлах. нужно переделать эту программу на c++. uses crt; var ru,en: text; r: byte; procedure FindEn; var s,ss,se: string; n: integer; begin http://www.cyberforum.ru/cpp-beginners/thread843467.html
как считать весь файл ? C++
char buff; ifstream fin("/Users/Vitaly/Desktop/laba2/laba2/list.txt",ios_base::in); fin>>buff,50; cout<<buff; fin.close(); Эта программа считутет первое слово , если я напишу fin.getline(buff,50), то программа считает первую строку в 50 символов , Вопрос : Как считать файл в котором n строк ?
C++ СЛАУ методом Жордана-Гаусса
Нужна программа для решения СЛАУ методом Жордана-Гаусса с выбором главного элемента.
C++ перегрузка операций http://www.cyberforum.ru/cpp-beginners/thread843444.html
Обычным методом задача решена, помогите пожалуйста сделать перегрузку операций Условие: Указанные в заданиях операции реализовать посредством перегрузки подходящих операций #include <iostream> #include <math.h> class Triangle { private: int angle;
C++ Вывод строки фиксированной длинны в cout (аля printf(%5.0d)! Добрый вечер! Сегодня встал перед выбором... как выводить через printf или cout. Через принтф код выдает ошибку: Необработанное исключение по адресу, ссылаясь на файл (msvcr110d.dll) ..Нарушение прав доступа Через cout все выводится, но хотелось бы, что бы для вывода выводилось определенное число пустых клеток, что бы получить таблицу: |1|name|name2|speed| а получаю так:... подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.04.2013, 23:00     Олимпиадная задача - сумма чисел меньших N, которые делятся на A или на B
С учетом того, что пересечением является нок, будет как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
 
int foo(long long x, long long n, int modulo)
{
    long long first = x;            //первый член арифметической прогрессии
 
    long long last = (n / x * x);   //последний член арифметической прогресии
 
    long long count  = n / x;       //количество членов в арифметической прогрессии
 
    return ( ( ( (first % modulo + last % modulo) % modulo) * (count % modulo) ) / 2 ) % modulo;
}
 
template <class T>
T gcd(T a, T b)
{
    while (a ^= b ^= a ^= b %= a);
    return b;
}
 
template <class T>
T lcm(T a, T b)
{
    return a * b / gcd(a, b);
}
 
int main()
{
    const int modulo = 1000000007;
    
    long long n;
 
    std::cin >> n;
    
    long long a, b;
    
    std::cin >> a >> b;
 
    std::cout << (foo(a, n, modulo) - foo(lcm(a, b), n, modulo) + foo(b, n, modulo)) % modulo << std::endl; 
}
 
Текущее время: 22:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru