Страница 1 из 1

Наибольшие делители числа из файла

Добавлено: 18 фев 2010, 14:28
Nikitos)))
Задача передо мной поставлена такая:
Найти 4 наибольших делителей введенного из файла числа и их сумму. Операцию оформить в виде функции, которая a качестве параметра получает имя файла, а возвращает найденную сумму, пожалуйста, срочно надо...

Re: Срочно помогите)))

Добавлено: 18 фев 2010, 14:57
rrrFer
что неполучается?

Re: Срочно помогите)))

Добавлено: 18 фев 2010, 16:10
Romeo
Если будешь делать сам с нашей помощью, то говори что конкретно не получается.
Если хочешь, чтобы за тебя полностью сделали, то дай знать и я перенесу в "Решите мне задачку".

P.S. Я поправил название темы. В который раз напоминаю, что заголовок темы должен быть информативным. Темы, не удовлетворяющие этому условию, могут быть удалены без предупреждения на основании правил, которые пользователь подписывает во время регистрации.

Re: НОД для чисел из файла

Добавлено: 18 фев 2010, 19:25
Nikitos)))
Не пойму одного, как найти 4 наибольших делителя числа, так все понятно...

Re: НОД для чисел из файла

Добавлено: 18 фев 2010, 19:27
Nikitos)))
И меня интересует не сам код, а алгоритм нахождения...

Re: НОД для чисел из файла

Добавлено: 18 фев 2010, 19:56
rrrFer

Код: Выделить всё

for(k=2,n=a,kol=0;k<=n&&kol<4;k++)
		if(!(a%k)){
			kol++;
			n=a/k;
			cout<<n<<" ";
		}
непроверял код. Если интересует алгоритм то можно написать в раздел алгоритмов, но не "С и С++"
в заголовке написали НОД - почему делители общие если число одно?

Re: Наибольшие делители числа из файла

Добавлено: 18 фев 2010, 22:31
Romeo
rrrFer писал(а): в заголовке написали НОД - почему делители общие если число одно?
Исправлено.

Re: НОД для чисел из файла

Добавлено: 19 фев 2010, 12:25
Albor
Nikitos))) писал(а):И меня интересует не сам код, а алгоритм нахождения...
По-моему, быстрее искать таким образом: делим исходное число на 2, затем на 3 и т. д., проверяя остаток от деления и пока не наберём 4 числа. Очевидно, что самым большим делителем будет само число, значит нужно искать всего 3 делителя.
PS rrrFer так и сделал, не обратил внимания сразу. :)

Re: Наибольшие делители числа из файла

Добавлено: 22 фев 2010, 03:00
rrrFer

Код: Выделить всё

int main(){
	int k,kol,a;
	cin>>a;
	for(k=1,kol=0;k<=a&&kol<3;k++)
        if(!(a%k)){
            kol++;
            cout<<a/k<<" ";
        }
	return 0;
}
ошибка там была