C/C++

Написать программу, соответствуя шаблону.

На си
Daulet Bolatuli
Daulet Bolatuli
249
#include <stdio.h>
typedef struct {
int key;
int value;
} Box;
Box dividers(int number) {
Box box;
box.key = number;
box.value = 0;
int middle = number >> 1;
int n, m;
printf("%-5i", number);
for (n = 2; n <= middle; ++n) {
if (0 == number % n) {
if (box.value) {
putchar(',');
if (0 == box.value % 4) {
puts("");
printf("%5s", "");
}
}
++box.value;
printf("%3i", n);
}
}
m = box.value;
while (m % 4 != 0) {
printf("%4s", "");
++m;
}
printf("%*i\n", box.value? 6 : 21, box.value);
return box;
}
int main() {
int a = 440;
int b = 470;
Box max = dividers(a);
Box next;
while (++a <= b) {
next = dividers(a);
if (next.value >= max.value) {
max = next;
}
}
printf("\n%i\n", max.key);
return 0;
}

P.S. Так как не совсем понятно, нужно ли выводить число 470, которое является последним в диапазоне. Если нет, то в строке 38 заменить код на следующий:

while (++a < b) {
Дмитрий Щербина
Дмитрий Щербина
53 395
Лучший ответ
#include "iostream"
using namespace std;
int main() {

int a = 440;
int b = 470;
int x,y,c,z=0;
for(int i=a;i<=b;i++){

for(int ii=2;ii<i;ii++){
if(!(i%ii)){
x++;
if(x==1){
cout<<i;
cout<<' ';
}else{
cout<<", ";
c++;
if(!(c%4&&c))cout<<"\n";
}

cout<<ii;

}

}
c=0;
if(x){
cout<<" ";
cout<<x;
cout<<"\n";
}
if(x>z){
z=x;
y=i;
}
x=0;
}
cout<<"\n";
cout<<y;
cout<<"\n";
return 0;
}
Женёк ....
Женёк ....
65 239
тёмный лес