1)Универсальный, но долгий
for i in range(1000000,1500001):
d=1
k=0
while d*d<=i:
if i%d==0:
if i//d-d<=110:
k+=1
if k==3:
print(i)
break
d+=1
2) Быстрый , но значения для второго цикла необходимо высчитывать вручную
a=set()
for j in range(940,1300):
if i%j==0:
if i//j-j<=110 and i//j-j>=0:
a.add(i//j-j)
if len(a)==3:
Объяснение:
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int sum = 0;
vector<vector<int>> arr;
arr.resize(10);
for (int i = 0; i < 10; ++i) {
arr[i].resize(10);
}
for (int j = 0; j < 10; ++j) {
arr[i][j] = rand();
cout << arr[i][j] << " ";
if (j == 9) {
cout << endl;
for (int i = 0, j = 0; i < 10, j < 10; ++i, ++j) {
if (arr[i][j] < 0) {
cout << "На главной диагонали есть отрицательные числа...";
return 0;
sum += arr[i][j];
cout << "Сумма элементов главной диагонали: ";
cout << sum;
1)Универсальный, но долгий
for i in range(1000000,1500001):
d=1
k=0
while d*d<=i:
if i%d==0:
if i//d-d<=110:
k+=1
if k==3:
print(i)
break
d+=1
2) Быстрый , но значения для второго цикла необходимо высчитывать вручную
for i in range(1000000,1500001):
d=1
k=0
a=set()
for j in range(940,1300):
if i%j==0:
if i//j-j<=110 and i//j-j>=0:
a.add(i//j-j)
if len(a)==3:
print(i)
break
Объяснение:
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int sum = 0;
vector<vector<int>> arr;
arr.resize(10);
for (int i = 0; i < 10; ++i) {
arr[i].resize(10);
}
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
arr[i][j] = rand();
cout << arr[i][j] << " ";
if (j == 9) {
cout << endl;
}
}
}
for (int i = 0, j = 0; i < 10, j < 10; ++i, ++j) {
if (arr[i][j] < 0) {
cout << "На главной диагонали есть отрицательные числа...";
return 0;
}
sum += arr[i][j];
}
cout << "Сумма элементов главной диагонали: ";
cout << sum;
}