Цитата(InFuz @ 1.4.2010, 10:33) *

(i=2;i<x;i++)?
Разве может быть делителем x число которое >1/2x (например числа >5 не могут быть делителями 10)
можно сократитть количество проверок в цикле почти в 2 раза.


Тогда уж не до x/2 а до sqrt(x), обычно делается так, не стал писать, чтоб не усложнять.

Цитата(InFuz @ 1.4.2010, 10:33) *

yk[99] - получается статический
*(yk) - тоже не верно а как тогда?


Объявлять и выделять память так:

Код
int* yk = new int[n]


Обращаться же по индексу

Код
cin>>yk[i];
s=yk[i];


Пробуйте сортировать. Для сортировки сделайте функцию, которая в качестве параметра принимает указатель на начало массива. Можно конечно qsort, но так неинтересно.