HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 11.11.2009, 18:07
winflip
Познающий
Регистрация: 13.05.2009
Сообщений: 40
С нами: 8945711

Репутация: 1
По умолчанию

Я по поводу теста простоты Миллера-Рабина(см. выше). Переписал с учётом замечаний, но по прежнему не работает
Код:
bool is_prime(int m){
	using namespace std;
	int r = 1000;
	int t = m-1;
	int s = 0;
	bool b = true;
	if(m==2){
		return true;
	}
	if(m%2==0){
		return false;
	}
	if(m==1){
		return false;
	}
	while(t%2==0 || b){
		b = false;
		s++;
		t=t/2;
	}
	for(int i=1;i<r+1;i++){
		int a = 2+rand()%(m-2);
		int x = int(float(pow(float(a),float(t))))%m;
		if((x==1)||(x==m-1)){
			continue;
		}
		for(int j=1;j<s;j++){
			x=int(float(pow(float(x),2)))%m;
			if(x==1){
				return false;
			}
			if(x==m-1){
				break;
			}
			return false;
		}
	}
	return true;
}
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.