Консультация № 162519
16.03.2009, 18:58
0.00 руб.
0 1 1
Здрасти!
Помогите решить задачи пожалуйста!!!

Делимость на 7


Требуется определить делимость на 7 ряда целых чисел, записанных в двоичной системе счисления.
Входные данные

В первой строке входного файла INPUT.TXT содержится N – количество чисел (N < 50). В следующих N строках содержатся двоичные числа (по одному в каждой строке). Каждое двоичное число состоит не более чем из 1000 цифр.
Выходные данные

Выходной файл OUTPUT.TXT должен содержать N строк. Для каждого теста в отдельной строке надо выдать сообщение “Yes”, если соответствующее число кратно 7 или “No” в противном случае.
Примеры:
1.input.txt:
3
1110
1010101
111111111111111111111111111
output.txt:
Yes
No
Yes
2. input.txt:
1
11
output.txt:
No

Ещё одна задача:

Количество делителей


Пусть х — натуральное число. Назовем у его делителем, если 1 <= у <= х и остаток от деления х на у равен нулю.

Задано число х. Найдите количество его делителей.
Входные данные

Входной файл INPUT.TXT содержит заданное число x (1 <= x <= 1018). Все простые делители числа x не превосходят 1000.
Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.
Примеры:
1. input.txt: 12
output.txt: 6
2. input.txt: 239
output.txt: 2

СПАСИБО!!!

Обсуждение

Неизвестный
16.03.2009, 20:49
общий
это ответ
Здравствуйте, Sahib Ruziboev Abdugaffarovich!
Решение 1й задачи:
Код:

#include <limits>
#include <fstream>
#include <string>

using namespace std;

bool calc(string str)
{
while(str.length()%3)str='0'+str;
unsigned int sum=0;
for(string::iterator it=str.begin();it!=str.end();)
{
sum+=*it++*4+*it++*2+*it++;
}
return !(sum%7);
}

int main()
{
ifstream in("INPUT.TXT");
ofstream out("OUTPUT.TXT");
unsigned int N;
in>>N;
in.ignore(numeric_limits<streamsize>::max(),'\n');
while(N--)
{
string str;
getline(in,str);
out<<(calc(str)?"Yes":"No")<<endl;
}
return 0;
}
Форма ответа