Код неверный
Объяснение:
Вот код:
Первый (простой, работает медленнее)
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
if(sqrt(i) == (int)sqrt(i))
cout << i << ' ';
}
Фактически мы просто для каждого числа проверяем, является ли его квадратный корень целым числом.
int x = 1, d = 3;
while(x <= n) {
cout << x << ' ';
x += d;
d += 2;
Решение основывается на этом утверждении:
Разница между квадратами двух последовательных натуральных чисел больше на 2 разницы между предыдущими двумя квадратами, например:
4 - 1 + 2 = 9 - 4
Доказательство:
Из чего получаем:
Доказано.
gears_count = int(input())
connections_count = int(input())
connections = []
for i in range(connections_count):
inp = input()
connections = connections + [[int(inp.split()[0]), int(inp.split()[1])]]
def get_connections_of_gear(gear=1, connections_arr=[[0]]):
gear_connections = 0
if connections_arr:
for i in range(connections_count * 2):
if connections_arr[i // 2][i % 2] == gear:
gear_connections += 1
return gear_connections
def is_valid():
if gears_count < 3 or connections_count < 3:
return "good"
elif gears_count % 2 == 0:
gears = 0
for i in range(gears_count):
if get_connections_of_gear(i, connections) > 2:
gears += 1
if gears % 2 == 0:
elif not gears_count % 2 == 0:
if not gears % 2 == 0:
return "bad"
print(is_valid())
8 из 11
Код неверный
Объяснение:
Вот код:
Первый (простой, работает медленнее)
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
if(sqrt(i) == (int)sqrt(i))
cout << i << ' ';
}
}
Фактически мы просто для каждого числа проверяем, является ли его квадратный корень целым числом.
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
int x = 1, d = 3;
while(x <= n) {
cout << x << ' ';
x += d;
d += 2;
}
}
Решение основывается на этом утверждении:
Разница между квадратами двух последовательных натуральных чисел больше на 2 разницы между предыдущими двумя квадратами, например:
4 - 1 + 2 = 9 - 4
Доказательство:
Из чего получаем:
Доказано.
gears_count = int(input())
connections_count = int(input())
connections = []
for i in range(connections_count):
inp = input()
connections = connections + [[int(inp.split()[0]), int(inp.split()[1])]]
def get_connections_of_gear(gear=1, connections_arr=[[0]]):
gear_connections = 0
if connections_arr:
for i in range(connections_count * 2):
if connections_arr[i // 2][i % 2] == gear:
gear_connections += 1
return gear_connections
def is_valid():
if gears_count < 3 or connections_count < 3:
return "good"
elif gears_count % 2 == 0:
gears = 0
for i in range(gears_count):
if get_connections_of_gear(i, connections) > 2:
gears += 1
if gears % 2 == 0:
return "good"
elif not gears_count % 2 == 0:
gears = 0
for i in range(gears_count):
if get_connections_of_gear(i, connections) > 2:
gears += 1
if not gears % 2 == 0:
return "good"
return "bad"
print(is_valid())
Объяснение:
8 из 11