Программа Pascal:
var ag,x,x1,s1,s2,sp:integer;
a1,a2:array[0..3] of integer;
begin
while (a1[0]=a1[1]) or (a1[1]=a1[2]) or (a1[2]=a1[3]) or (a1[3]=a1[0]) or (a1[1]=a1[3]) or (a1[2]=a1[0]) do
begin
x:=random(8999)+1000;
ag:=10000;
for var i1:=0 to 3 do
begin
a1[i1]:= (x mod ag) div (ag div 10);
ag:=ag div 10;
end;
end;
while x<>x1 do
begin
x1:=0;
while (x1<1000) or (9999<x1) do
begin
writeln; write('Введите 4ехзначное число = '); readln(x1);
end;
ag:=10000;
for var i2:=0 to 3 do
begin
a2[i2]:= (x1 mod ag) div (ag div 10);
ag:=ag div 10;
end;
s1:=0;
if (a2[0]=a1[0]) then s1:=s1+1;
if (a2[1]=a1[1]) then s1:=s1+1;
if (a2[2]=a1[2]) then s1:=s1+1;
if (a2[3]=a1[3]) then s1:=s1+1;
writeln('Число быков = ',s1);
s2:=0;
if (a2[0]=a1[0]) or (a2[0]=a1[1]) or (a2[0]=a1[2]) or (a2[0]=a1[3]) then s2:=s2+1;
if (a2[1]<>a2[0]) or (a2[1]<>a2[2]) or (a2[1]<>a2[3]) then
if (a2[1]=a1[0]) or (a2[1]=a1[1]) or (a2[1]=a1[2]) or (a2[1]=a1[3]) then s2:=s2+1;
if (a2[2]<>a2[0]) or (a2[2]<>a2[1]) or (a2[2]<>a2[3]) then
if (a2[2]=a1[0]) or (a2[2]=a1[1]) or (a2[2]=a1[2]) or (a2[2]=a1[3]) then s2:=s2+1;
if (a2[3]<>a2[0]) or (a2[3]<>a2[1]) or (a2[3]<>a2[2]) then
if (a2[3]=a1[0]) or (a2[3]=a1[1]) or (a2[3]=a1[2]) or (a2[3]=a1[3]) then s2:=s2+1;
writeln('Число коров = ',s2-s1);
sp:=sp+1;
writeln('Попытка ',sp);
end;
writeln; write('ПОЗДРАВЛЯЮ, ВЫ УГАДАЛИ ЧИСЛО!');
end.
--
import datetime
import time
from math import sqrt
UTC = datetime.datetime.utcnow
class MyClass:
def __init__(self, number):
self.number = number
self.res = 0
self.acc = [[1]]
def addToPos(self, pos, i):
self.acc[pos] = self.acc[pos] + [i]
def addToTail(self, i):
self.acc = self.acc + [[i]]
def testPos(self, pos, i):
ret = True
for x in self.acc[pos]:
if i % x == 0:
ret = False
break
return ret
def addCand(self, i):
ret = False
pos = 0
for lst in self.acc:
if self.testPos(pos, i):
ret = True
self.addToPos(pos, i)
break
pos = pos + 1
if not ret:
self.addToTail(i)
def calc(self):
for i in range(2, self.number + 1):
self.addCand(i)
print(self.acc)
print(len(self.acc))
def test(num):
start = UTC()
cl = MyClass(num)
cl.calc()
print (UTC() - start)
if __name__ == '__main__':
test(int(input()))
python test.py
9
[[1], [2, 3, 5, 7], [4, 6, 9], [8]]
4