#include <stdio.h>
#include <malloc.h>
#include <locale.h>
int **a;
int simple(int n)
{
int i;
for(i=2;i<= n/2;i++)
if( (n%i)==0 )
{
return 0; //не простое число
}
return 1; // простое число
}
int downsimple(int k, int m)
{
int current;
// находим первое простое число
for (current=0; current<m && !simple(a[k][current]); current++)
;
for (int i=current+1; i<m; i++)
if (simple(a[k][i])) // не простое число игнорируем
if (a[k][i] > a[k][current])
return 0; // следующее больше текущего - ошибка
else
current = i; // изменяем текущее
return 1; // вернет 1 если простых чисел нет вовсе.
}
int RepeatTwo(int k, int m)
{
int value,i;
int tempmas[m];
for(i=0; i<m; i++)
{
tempmas[i] = a[k][i];
}
for(i=0; i<m; i++)
{
value = tempmas[i];
tempmas[i] = 0;
for(int j = 0; j< m; j++)
{
if(value == a[k][j])
{
tempmas[i]++;
printf("repeat: %d \n", tempmas
[i
]); }
}
}
for( i=0; i<m; i++)
{
if(tempmas[i] < 2 && !simple(tempmas[i]))
{return 0;} //число встречается 1 раз
}
return 1; //число встречается 2 раза и более
}
void matrix(int n,int m)
{
int i;
for(i=0; i<n; i++)
{
printf("RepeatTwo = %d, DownSimple = %d\n",RepeatTwo
(i
,m
) == 1 ,downsimple
(i
,m
)); if(RepeatTwo(i,m) == 1 && downsimple(i,m) == 1)
{
}
}
}
int main()
{
int n,m,i,j;
a
= (int**)malloc(n
*sizeof(int*)); for(i=0; i<n; i++)
{
a
[i
] = (int*)malloc(m
*sizeof(int)); for(j=0; j<m; j++)
{
}
}
matrix(n,m);
printf("\n\nPrint result matrix:\n"); for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYWxsb2MuaD4KI2luY2x1ZGUgPGxvY2FsZS5oPgppbnQgKiphOwoKaW50IHNpbXBsZShpbnQgbikKewogICAgaW50IGk7CiAgICBmb3IoaT0yO2k8PSBuLzI7aSsrKQogICAgICAgIGlmKCAobiVpKT09MCApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMDsgLy/QvdC1INC/0YDQvtGB0YLQvtC1INGH0LjRgdC70L4KICAgICAgICB9CiAgICByZXR1cm4gMTsgLy8g0L/RgNC+0YHRgtC+0LUg0YfQuNGB0LvQvgp9CgppbnQgZG93bnNpbXBsZShpbnQgaywgaW50IG0pCnsKICAgIGludCBjdXJyZW50OwogICAgLy8g0L3QsNGF0L7QtNC40Lwg0L/QtdGA0LLQvtC1INC/0YDQvtGB0YLQvtC1INGH0LjRgdC70L4KICAgIGZvciAoY3VycmVudD0wOyBjdXJyZW50PG0gJiYgIXNpbXBsZShhW2tdW2N1cnJlbnRdKTsgY3VycmVudCsrKQogICAgICAgIDsKICAgIGZvciAoaW50IGk9Y3VycmVudCsxOyBpPG07IGkrKykKICAgICAgICBpZiAoc2ltcGxlKGFba11baV0pKSAvLyDQvdC1INC/0YDQvtGB0YLQvtC1INGH0LjRgdC70L4g0LjQs9C90L7RgNC40YDRg9C10LwKICAgICAgICAgICAgaWYgKGFba11baV0gPiBhW2tdW2N1cnJlbnRdKQogICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vINGB0LvQtdC00YPRjtGJ0LXQtSDQsdC+0LvRjNGI0LUg0YLQtdC60YPRidC10LPQviAtINC+0YjQuNCx0LrQsAogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBjdXJyZW50ID0gaTsgLy8g0LjQt9C80LXQvdGP0LXQvCDRgtC10LrRg9GJ0LXQtQogICAgcmV0dXJuIDE7IC8vINCy0LXRgNC90LXRgiAxINC10YHQu9C4INC/0YDQvtGB0YLRi9GFINGH0LjRgdC10Lsg0L3QtdGCINCy0L7QstGB0LUuCn0KCmludCBSZXBlYXRUd28oaW50IGssIGludCBtKQp7CiAgICBpbnQgdmFsdWUsaTsKICAgIGludCB0ZW1wbWFzW21dOwoKICAgIGZvcihpPTA7IGk8bTsgaSsrKQogICAgewogICAgICAgIHRlbXBtYXNbaV0gPSBhW2tdW2ldOwogICAgfQoKICAgIGZvcihpPTA7IGk8bTsgaSsrKQogICAgewogICAgICAgIHZhbHVlID0gdGVtcG1hc1tpXTsKICAgICAgICB0ZW1wbWFzW2ldID0gMDsKICAgICAgICBmb3IoaW50IGogPSAwOyBqPCBtOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZih2YWx1ZSA9PSBhW2tdW2pdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0ZW1wbWFzW2ldKys7CiAgICAgICAgICAgICAgICBwcmludGYoInJlcGVhdDogJWQgXG4iLCB0ZW1wbWFzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGZvciggaT0wOyBpPG07IGkrKykKICAgIHsKICAgICAgICBpZih0ZW1wbWFzW2ldIDwgMiAgJiYgIXNpbXBsZSh0ZW1wbWFzW2ldKSkKICAgICAgICB7cmV0dXJuIDA7fSAvL9GH0LjRgdC70L4g0LLRgdGC0YDQtdGH0LDQtdGC0YHRjyAxINGA0LDQtwogICAgfQogICAgcmV0dXJuIDE7IC8v0YfQuNGB0LvQviDQstGB0YLRgNC10YfQsNC10YLRgdGPIDIg0YDQsNC30LAg0Lgg0LHQvtC70LXQtQp9CnZvaWQgbWF0cml4KGludCBuLGludCBtKQp7CiAgICBpbnQgaTsKICAgIGZvcihpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiUmVwZWF0VHdvID0gJWQsIERvd25TaW1wbGUgPSAlZFxuIixSZXBlYXRUd28oaSxtKSA9PSAxICxkb3duc2ltcGxlKGksbSkpOwogICAgICAgIGlmKFJlcGVhdFR3byhpLG0pID09IDEgJiYgZG93bnNpbXBsZShpLG0pID09IDEpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIkRlbGV0ZSB0aGlzIHN0clxuIik7CiAgICAgICAgICAgIGZyZWUoYVtpXSk7CgogICAgICAgIH0KCiAgICB9Cgp9CgppbnQgbWFpbigpCnsKICAgIGludCBuLG0saSxqOwoKICAgIHByaW50ZigiVGhlIE5VTUJFUiBvZiBOOlxuIik7CiAgICBzY2FuZigiJWQiLCAmbik7CgoKICAgIHByaW50ZigiVGhlIE5VTUJFUiBvZiBNOlxuIik7CiAgICBzY2FuZigiJWQiLCAmbSk7CiAgICBhID0gKGludCoqKW1hbGxvYyhuKnNpemVvZihpbnQqKSk7CiAgICBmb3IoaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgICBhW2ldID0gKGludCopbWFsbG9jKG0qc2l6ZW9mKGludCkpOwogICAgICAgICAgICBmb3Ioaj0wOyBqPG07IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCJhWyVkXVslZF0gPSAiLCBpLCBqKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZhW2ldW2pdKTsKICAgICAgICAgICAgfQogICAgIH0KCgoKICAgIG1hdHJpeChuLG0pOwoKCiAgICBwcmludGYoIlxuXG5QcmludCByZXN1bHQgbWF0cml4OlxuIik7CiAgICBmb3IoaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgZm9yKGo9MDsgajxtOyBqKyspCiAgICAgICAgewogICAgICAgICBwcmludGYoIiU1ZCAiLCBhW2ldW2pdKTsKICAgICAgICB9CiAgICAgIHByaW50ZigiXG4iKTsKICAgICAgZnJlZShhW2ldKTsKICAgIH0KCgoKICAgIGZyZWUoYSk7CiAgICBwcmludGYoIlxuXG5NZW1vcnkgZnJlZSFcbiIpOwogICAgcmV0dXJuIDA7Cn0KCg==