Форум программистов, компьютерный форум 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| а получаю так:... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
20.04.2013, 23:05     Олимпиадная задача - сумма чисел меньших 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
 
using namespace std;
long long NOK(long long A,long long B)
{
if(A%2==0&&B%2==0)
 return 2;
long long c=A;
if(A>B)
  c=B;
for(int i=3;i<c/2;c+=2)
{
 if(A%i==0&&B%i==0)
     return i;
}
return 1;
 
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 long long n, a, b, sum = 0;
    cin>>n>>a>>b;
 
    for (long long i = a; i < n; i += a) if (i % b != 0) sum += i;
    for (long long i = b; i < n; i += b) sum += i;
    cout<<endl;
    cout<<(sum % 1000000007)<<endl;
  long long summA,summB,summAB,summ;
  
  
  
  long long qA=n/a;
if(n%a==0)
 qA--;
 long long lastA =qA*a;
summA=((a+lastA)*qA)/2;
 
 long long qB=n/b;
if(n%b==0)
 qB--;
 long long lastB =qB*b;
summB=((b+lastB)*qB)/2;
 
long long nok=NOK(a,b); 
long long first=a*b/nok;
 
long long qAB=n/first;
if(n%first==0)
 qAB--;
long long lastAB =qAB*first;
summAB=((first+lastAB)*qAB)/2;
 
summ=summA+summB-summAB;
 
 cout<<(summ % 1000000007)<<endl;   
 return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от ya_noob Посмотреть сообщение
я всё правильно написал, именно нок, а вы путаете его с нод
ну попутал с кем не бывает
я твоего варианта не вижу

Добавлено через 1 минуту
diagon,
проверь свой вариант
если A равно B
мой врет
причем оба метода
я так понимаю 0 должен быть
 
Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru