Ищем много чисел харшад (Нивена)
Числа харшад - это просто натуральные числа, делящиеся нацело на сумму своих цифр.
Так как не нашёл таблицы нужного размера, быстрее реализовать этот несложный алгоритм самостоятельно.
Программа выводит N = 100000
первых десятичных чисел харшад в консоль и файл harshad.txt
. Проверено в актуальной сборке Visual Studio 2019.
Далее можно увидеть листинг программы и скачать файл с числами Нивена.
#include <vector> #include <iostream> #include <fstream> using namespace std; int sumDigits(int number) { int sum = 0; while (number) { sum += number % 10; number /= 10; } return sum; } bool isHarshad(int number) { return number % (sumDigits(number)) == 0; } int main() { const int N = 100000; vector <int> harshads; int i = 0; while (harshads.size() != N) { i++; if (isHarshad(i)) harshads.push_back(i); } ofstream f("harshad.txt"); if (!f) { cout << "File open error!"; return 1; } cout << N << " harshad numbers: " << endl; f << N << " harshad numbers: " << endl; for (int number : harshads) { cout << number << endl; f << number << endl; } f.close(); return 0; }
Скачать первые 100000 чисел Харшад в архиве .zip с файлом .txt (238 Кб)
06.09.2021, 12:41 [1037 просмотров]