@dmitrii2004

Найдите сумму и количество делителей натурального числа?

Числовые функции
Количество всех натуральных делителей натурального числа n обозначается σ0(n). Сумма всех натуральных делителей числа n обозначается σ1(n).

Входные данные

Дано натуральное n≤109.

Выходные данные

Выведите σ0(n) и σ1(n).

Примечание

Данную задачу рекомендуется решать путём перебора всех делителей числа до n−−√.

Примеры
Ввод
6
Вывод
4 12
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int n,c=0,s=0;
	cin >> n;
	for (int i = 1; i <= sqrt(n) ; i++)
	{
		if (n % i == 0 and i != sqrt(n)) {
			c += 2;
	
			s += (i + n / i);
			
		}
		if (i == sqrt(n) and n % i == 0)
		{

			c += 1;
			s += i;
			
		}
	}
	cout << c << " " << s;
	
}
Помогите пожалуйста. Сайт пишет что программа выдаёт неверный ответ
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
В с++ разве есть оператор and? Попробуйте заменить sqrt на проверку i*i ==n. Видимо, проблемы с точностью. Плюс может быть переполнение. Сумма должна быть long long.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Solar Staff Лимассол
от 3 200 до 3 700 €
Solar Staff Лимассол
от 3 000 до 3 600 €
МТТ Москва
от 150 000 ₽
27 июл. 2021, в 22:00
25000 руб./за проект
27 июл. 2021, в 21:59
1500 руб./за проект
27 июл. 2021, в 21:54
15000 руб./за проект