Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2009, 17:27   #1
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию Задача на матрицу с простыми числами

Дана матрица А[N,М]. Определить количество элементов матрицы, являющихся простыми числами.
Вот код:
Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int M, N, i, j, a, b, c;
cout<<"vvedite chislo strok N= "<<'\n';
cin>>N;
cout<<"vvedite chislo stolbcov M= "<<'\n';
cin>>M;
int**mas=new int *[N*M];
randomize ();
cout<<'\n';
for (i = 0; i < N; i++)
{
mas[i]=new int [M];
cout<<'\n';
for (j =0; j < M; j++)
{
mas[i][j]=random(10)+1;
cout<<mas[i][j]<<' ';
}
}
c=0;
for (a=0; a<N; a++)
for (b=0; b<M; b++)
for (i=a+1; i<N; i++)
for (j=b+1; j<M; j++)
{if ((mas[a][b])/(mas[i][j])==1)
c++;
if ((mas[a][b])/(mas[i][j])==(mas[a][b]))
c++;
}
cout<<c;
getch();
        return 0;
}
//---------------------------------------------------------------------------
вроде все учел, а программа считает не все числа...

У нас принято оформлять код специальным тэгом - кнопочка "#".
Модератор

Последний раз редактировалось mihali4; 25.12.2009 в 18:36.
Dead Romantic вне форума Ответить с цитированием
Старый 25.12.2009, 17:55   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

У Вас похоже неправильный алгоритм определения простых чисел. вот смотрите если mas[a][b]=4 и mas[i][j])=4, то получается, что число простое. А простое число -это, то которое делиться только само на себя ну и на 1. Я предлагаю Вам брать каждый элемент массива и если он >3 ,то изменяя k от 2 до его значения проверять делится ли он без остатка на эту величину. Если делится, то непростое.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 25.12.2009 в 18:16.
Sweta вне форума Ответить с цитированием
Старый 25.12.2009, 18:03   #3
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию

Что такое k в вашем случае?
Dead Romantic вне форума Ответить с цитированием
Старый 25.12.2009, 18:12   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Переменная. Если хотите выложу фрагмент решения.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 25.12.2009, 18:34   #5
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию

Ну если вам не трудно, то я бы не отказался
Dead Romantic вне форума Ответить с цитированием
Старый 25.12.2009, 18:37   #6
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Тип переменных k и fl опишите сами.
Код:
cout<<endl;
c=0;
for (i=0; i<N; i++)
for (j=0; j<M; j++)
{
if  (mas[i][j]<3)
c++;
else
{
 fl=false;
for (k=2; k<mas[i][j]; k++)
  {
  if( mas[i][j]%k==0)
  { fl=true;
   break;
   }
 }
   if(!fl)
   c++;
 }


}
cout<<c;
getch();
return 0;
}
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 25.12.2009, 18:42   #7
Dead Romantic
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 32
По умолчанию

Спасибо Вам Большое! И с Наступающим)
Dead Romantic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на матрицу(Си) bars1984 Помощь студентам 4 20.05.2009 20:12
(pascal) задача с совершенными числами klarissa Помощь студентам 6 27.12.2007 07:58
Задача на матрицу. Fest Помощь студентам 2 16.12.2007 05:54