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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2012, 01:07   #1
phreaker228
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию Поиск простых чисел

Люди добрые помогите найти ошибку!Программа должна искать простые числа в рандомном массиве:
Код:
#include "stdafx.h"
 #include <iostream>
 #include <conio.h>
 #include <ctime>
 using namespace std;
 int PrimeNumber(int number);
 int _tmain(int argc, _TCHAR* argv[])
 { setlocale (0,"Rus");
  srand(time(0));
  int n;
 int* parray;
 cout <<"Введите размерность массива: ";
 cin>>n;
 parray = new int [n];
 for (int i=0;i<n;i++)
 { parray [i] = rand () %100;
 cout<<"a["<<i<<"]="<<parray[i]<<endl;}
  
 cout << "Простые числа в массиве:";

 for (int i=2;i<n;i++) 
 if (PrimeNumber(i)==1)
 {int k=i;
 cout << k <<", ";}

 return 0;
 }

 int PrimeNumber(int number)
 {
   for (int i=2; i<number; i++)
   {
     if (number%i == 0)
     {
       return 0;
     }

     if (( i==number) || (i> pow(number,2.0)))
     {
       return 1;
     }
   }
   getch();
   return 1;
 }
phreaker228 вне форума Ответить с цитированием
Старый 02.06.2012, 02:35   #2
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Код:
for (int i=2;i<n;i++) 
if (PrimeNumber(i)==1)
 {int k=i;
 cout << k <<", ";}
Цикл вывода просто выводит все простые числа от 2 до n.

Код:
int main(){ 
	setlocale (0,"Rus");
	srand(time(0));
	int n;
	int* parray;
	cout <<"Введите размерность массива: ";
	cin>>n;
	parray = new int [n];
	for (int i=0;i<n;i++)
	{ 
		parray [i] = rand () %100;
		cout<<"a["<<i<<"]="<<parray[i]<<endl;}
		cout << "Простые числа в массиве:";
		for (int i=0;i<n;i++){
			if (PrimeNumber(parray [i]))
				cout << parray [i] <<", ";
	}
	getch();
	return 0;
	}

int PrimeNumber(int number){
	if(number< 2) return 0;
	double I=pow(number+1,0.5);
	I+=1;
	for (int i=2; i<(int)I; i++)
	{
	if (number%i == 0)
		return 0;
	}

	return 1;
}
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 02.06.2012, 02:47   #3
zvoronz
Пользователь
 
Регистрация: 03.01.2011
Сообщений: 49
По умолчанию

Код:
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;
int PrimeNumber(int number);

int main(int argc, char* argv[])
{
	setlocale (0,"Rus");
	//srand(time(0));
	int n;
	int* parray;
	cout <<"Введите размерность массива: ";
	cin>>n;
	parray = new int [n];
	for (int i=0;i<n;i++)
	{
		parray [i] = rand () %100;
		cout<<"a["<<i<<"]="<<parray[i]<<endl;
	}

	cout << "Простые числа в массиве:";

	for (int i=2;i < n;i++) 
		if (PrimeNumber(parray[i]) == 1)					
			cout << parray[i] <<", ";		

	delete[] parray;
	return 0;
}

int PrimeNumber(int number)
{
	for (int i = 2; i < number; i++)
	{
		if (number % i == 0)
		{
			return 0;
		}

		if (( i == number) || (i > pow(number,2.0)))
		{
			return 1;
		}
	}	
	return 1;
}
zvoronz вне форума Ответить с цитированием
Старый 03.06.2012, 15:24   #4
phreaker228
Пользователь
 
Регистрация: 31.05.2011
Сообщений: 18
По умолчанию

спасибо большое!
phreaker228 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск простых чисел + поток (C++) Brabus Помощь студентам 4 30.09.2011 08:46
Программа для поиска простых, простых парных и взаимнопростых чисел in da fly Помощь студентам 1 26.05.2011 23:30
выбор из ряда чисел простых чисел изо Паскаль, Turbo Pascal, PascalABC.NET 5 13.04.2011 22:51
Поиск простых чисел из диапазона dex92 Помощь студентам 2 21.05.2010 09:40
поиск простых чисел методом решета.программа на С или С++ из_семи Помощь студентам 2 25.02.2009 20:56