Объяснение:
С использованием арифметики указателей будет так на чистом С:
В программе, я так понимаю, требовалось поменять 1-ю и последнюю строку в матрице?
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <locale>
#include <new> //для new
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukr");
int n = 3, m = 3;
printf("Кiлькiсть рядкiв матрицi = ");
scanf_s("%d", &n);
printf("Кiлькiсть стовпцiв матрицi = ");
scanf_s("%d", &m);
int** mat;
// Динамічне виділення пам'яті в кучі для матриці
// за до malloc() в стилі С або
// за до new в С++
mat = (int**)malloc(sizeof(int*) * n);
for (int i = 0; i < n; ++i)
*(mat + i) = (int*)malloc(sizeof(int) * m);
srand(time(NULL));
printf("Була:\n");
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
*(*(mat + i) + j) = (int) rand() % 21 - 10;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
printf("%5d", *(*(mat + i) + j));
printf("\n");
}
// Переставити 1-й та останній рядок
printf("Cтала:\n");
int* temp = *mat;
*mat = *(mat + n - 1);
*(mat + n - 1) = temp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
printf("%5d", *(*(mat + i) + j));
printf("\n");
}
// Звільнення пам'яті з кучі (якщо було new, то delete)
for (int i = 0; i < n; ++i)
free(*(mat + i));
free(mat);
return 0;
}
Объяснение:
program friendfullNumbers;
uses crt;
var a: longint;
b, i, s, s1: integer;
{a - первое число;
b - делители числа s;
i - делители числа a;
s - сумма делителей первого числа;
s1 - сумма делителей s}
begin
clrscr;
for a:= 2 to 30000 do {цикл для проверки первых чисел}
begin
s:=0;
for i:= 1 to a-1 do {находим все делители числа а,
исключая само число}
if a mod i = 0 then s:= s+i; {находим сумму делителей числа а}
s1:=0;
for b:= 1 to s-1 do {цикл для проверки вторых чисел, которые являются суммой делителей первого числа}
if s mod b = 0 then s1:= s1 +b; {находим все делители числа s (сумма делителей числа а)}
if (s1=a) and (s< >a) then writeln (a, ' ', s); {сумма делителей суммы делителей числа а должна быть равна числу A, а сумма делителей числа A не должна быть равна этому числу}
end;
end.