--- Python 3.8.3 ---
#1 - file mdir.py
import os
import sys
import difflib
__all__ = ['CreateEmptyDir', 'RmDir']
__here__ = os.path.dirname(os.path.realpath(__file__))
#Функция, создающая папки
def CreateEmptyDir(count, path = __here__):
try:
for i in range(count):
rpath = path + f'\\dir_{i}'
os.mkdir(rpath)
except OSError:
print(f'Failed to create directory {path}')
#Функция, удаляющая папки
def RmDir(mask, path = __here__):
try:
for folder in os.listdir(path):
s = difflib.SequenceMatcher(None, mask, folder)
if s.ratio() > 0.8:
f = path + '\\' + folder
if os.path.isdir(f):
os.rmdir(f)
except OSError as e:
print(f'Failed to remove directory {f}\n{e}')
#Вызов функций из модуля
def main():
CreateEmptyDir(10)
next = input()
RmDir('dir_')
if __name__ == "__main__":
main()
#2 - file randchoise.py
import random
__all__ = ['RandChoise']
def RandChoise(lst):
if len(lst) == 0: return None
return random.choice(lst)
def main():
data = [1,2,3,4]
print(RandChoise(data))
if __name__ == "__main__":
main()
#3 main.py
from mdir import *
from randchoise import *
import time
def main():
CreateEmptyDir(10)
time.sleep(3) #Что бы успели прогрузиться созданные папки
RmDir('dir_')
print(RandChoise([1,2,3,4,5,6,7,8,9,2,1,32,31,2540]))
if __name__ == "__main__":
main()
От пользователя: размерность массива, делитель, массив. Пользователь заполняет массив.
Далее проходим по массиву, находим "группки" чисел, которые делятся нацело на делитель, данный пользователем. Находим i (индекс, с которого идут делящиеся числа). Записываем, сколько этих чисел было. Выводим всю информацию.
#include <iostream>
using namespace std;
int main() {
setlocale (LC_ALL, "Russian");
int counter[1000] = {0};
int startIndex[1000];
int max = 0;
int indexMax = 0;
int sCounter = 0;
int finishIndex[1000];
bool is = 0;
int N;
cin >> N;
int a[N];
int del = 0;
cout << "Делитель: ";
cin >> del;
for(int i = 0; i<N; ++i) {
cin >> a[i];
}
for(int i = 0; i<N; ++i) {
if(a[i]%del==0) {
if(is==0) {
startIndex[sCounter]=i; // записываем стартовую позицию
is=1;
}
++counter[sCounter]; // прибавляем счетчик
}
else {
finishIndex[sCounter]=i; // финишная позиция
is=0;
++sCounter;
}
}
for(int i = 0; i<1000; ++i) {
if(counter[i]>max) {
max = counter[i];
indexMax=i;
}
}
cout << "Числа с " << startIndex[indexMax]+1 << " по " << startIndex[indexMax]+max <<
endl << " делятся нацело на " << del << " " << max << " раз подряд";
}