Выйти из внутреннего цикла, сохранив поток внешнего - C (СИ)
Формулировка задачи:
#include <stdio.h>
int main(void) {
int number = 10;
int count = 0;// обьявляем и инициализируем переменную/счетчик количества найденныых елементов/простых чисел
for (int i = 2; i <= number; i++) {// цикл перебор диапазона чисел(number) начиная с 2 и заканчивая number
for (int j = 2;
j < i; j++) {// цикл нахождения остачи от числа 'i' (делим на пердыдушие кроме самого себя начиная с 2
if (i % j == 0) {// если остача от числа 'i' найдена значит не простое --> выход из ИНТЕРАЦИИ цикла на след виток
break;
}
}
count++;// собновляем сетчик количества найденныых елементов/простых чисел
printf("i=%d\n", i);// выводит елемент/простое число в консоль
}
printf("count:%d\n", count);// вывод счетчик количества найденныых елементов/простых чисел
}//Вывести простые числа V1
simpleNumbers();
function simpleNumbers() {
let number = 1e2;
let arr = [];// обьявляем масив
let count = 0;// обьявляем и инициализируем переменную/счетчик количества найденныых елементов/простых чисел
console.time('Timer');// старт таймер
nextPrime:// метка выхода из цыкла
for (let i = 2; i <= number; i++) {// цикл перебор диапазона чисел(number) начиная с 2 и заканчивая number
for (let j = 2; j < i; j++) {// цикл нахождения остачи от числа 'i' (делим на пердыдушие кроме самого себя начиная с 2
if (i % j === 0) {// если остача от числа 'i' найдена значит не простое --> выход из ИНТЕРАЦИИ цикла на след виток
continue nextPrime;// прекращает выполнение текущей итерации цикла --> управление перепрыгнет на следующую итерацию цикла с меткой.
}
}
arr.push(i);// добавляет элемент в конец массива
count++;// собновляем счетчик количества найденныых елементов/простых чисел
//console.log(i); // выводит елемент/простое число в консоль
}
console.timeEnd('Timer');// стоп таймер
console.log('Number: ' + number);// вывод числа в диапазоне которого происходит поиск
console.log('Счетчик количества найденныых елементов/простых чисел: ' + count);// вывод счетчик количества найденныых елементов/простых чисел
console.log('Длина масива/последний индекс + 1: ' + arr.length);// длина length – не количество элементов массива, а последний индекс + 1, так как начало отсчета в масивах '0'
console.log('Масив:' + arr);// выводит масива селементов/простых чисел в консоль
}Решение задачи: «Выйти из внутреннего цикла, сохранив поток внешнего»
textual
Листинг программы
//gcc 5.4.0
#include <stdio.h>
int is_prime(int n)
{
if(n==1) return 1;
for(int d=2; d*d<=n; d++)
if(n%d==0) return 0;
return 1;
}
int main(void)
{
int number = 200;
int count = 0;
for(int i=2; i<=number; i++) {
if (is_prime(i)) {
printf("%d\n", i);
++count;
}
}
printf("count:%d\n", count);
return 0;
}
Объяснение кода листинга программы
- Первый шаг - объявление функции is_prime, которая принимает целочисленный аргумент n и возвращает 1, если число n является простым, и 0 в противном случае.
- Затем идет объявление функции main, которая является точкой входа в программу. В этой функции объявляются две переменные: number (количество) и count (счетчик).
- Далее следует цикл for, который начинается с 2 и идет до number.
- Внутри цикла проверяется, является ли текущее число i простым с помощью функции is_prime.
- Если число простое, оно выводится на экран и счетчик count увеличивается на 1.
- После завершения цикла выводится значение счетчика count.
- В конце функции main возвращается 0, что означает успешное завершение программы.