PYTHON писать через логическую фунццию: Напишите логическую функцию, которая определяет, является ли переданное ей число совершенным, то есть, равно ли оно сумме своих делителей, меньших его самого. Пример: Введите натуральное число: 28 Число 28 совершенное. Пример: Введите натуральное число: 29 Число 29 не совершенное.
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}
#include <iostream>
using namespace std;
int main()
{
int num;
cin >> num >> num;
int* ans = new int[num];
for (int jjj = 0; jjj < num; jjj++) cin>> ans[jjj];
for (int jjj = 1; jjj < num; jjj++) {
if (ans[jjj - 1] != ans[jjj] - 1) cout << ans[jjj - 1] << ",";
else {
cout << ans[jjj - 1];
int kkk = jjj;
for (kkk; kkk < num; kkk++)
if (ans[kkk - 1] != ans[kkk] - 1) break;
if (kkk - jjj > 1) cout << "-" << ans[kkk - 1];
else cout << "," << ans[kkk - 1];
jjj = kkk;
if (num - jjj) cout << ",";
}
if (num - jjj == 1) cout << ans[jjj];
}
}