Я нашел фрагмент кода для решения uva 10006:
Тем не менее, я столкнулся с некоторыми трудностями, чтобы понять это (я использую Python и Java и никогда не использовал C ++ раньше). Я также не мог понять какую-то логику в этом.
Во-первых, как это эквивалентно питону?
bool isComp[MaxNumChecked];
bool isCar[MaxNumChecked];
Во-вторых, для условия в строке 23, где находится реализация для isComp [] для проверки, является ли число составным? Это что-то встроенное ??
if (!isComp[i])
В-третьих, цикл в строке 26, какие значения он перебирает?
for (int j = 3 * i; j < MaxNumChecked; j += 2*i)
Наконец, я мог бы сказать, что я мог глобально понять, что делает код, за исключением вышеупомянутых вопросов, но я не в состоянии понять комментарии с самого начала. Не могли бы вы объяснить мне?
// First, filter for primes
// Then, for each num, for every n greater than it, test if the carmichael doesn't hold
// This is sqrt(65005)