Форум программистов, компьютерный форум CyberForum.ru

Быстрая проверка натурального числа на простоту - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Фоновая коррекция изображения http://www.cyberforum.ru/cpp-beginners/thread660353.html
Мне надо написать прогу, которая корректировала бы фон изображения по алгоритму:Для каждого пикселя изображения 3 (результат) : (R3,G3,B3)=(R2-R1,G2-G1,B2-B1)+Del, где Del это значение scrollbar от -255 до 255, R1,G1,B1 - значения пикселей фона, R2,G2,B2 - значение пикселей изображения, которое надо изменить. Вот код: void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { int...
C++ выполните расчет стоимости, использованного интернет-трафика помогите пожалуйста, написать программу в visual c++: Выполните расчет стоимости, использованного интернет-трафика, если в ночные часы предоставляется скидка в 20%. (стоимость мегабайта и время начала скачивания вводятся пользователем, тариф определяется по времени начала). Добавлено через 1 час 16 минут как я поняла, мне нужно ввести с клавиатуры стоимость мегабайта и время суток. если это... http://www.cyberforum.ru/cpp-beginners/thread660348.html
Элементарный математический код, но почему то всегда равно 0,0000 C++
Элементарный математический код, но почему то всегда равно 0,0000. Тут я еще использую старые функции ввода-вывода, потому что так надо на лабораторную. Вот код: #include<iostream> #include<stdio.h> #include<conio.h> #include<math.h> using namespace std; int main() {
Нахождение суммы ряда с заданной точностью C++
Помогите решить задачу что то не как не могу определить с чего начать.
C++ Количество точек с целочисленными координатами внутри (не включая границ) произвольного многоугольника http://www.cyberforum.ru/cpp-beginners/thread660306.html
Есть вот такая задача. Координаты вершин подаются в порядке обхода по часовой стрелке, многоугольник может быть и невыпуклым. Решение будет основываться на исп. формулы Пика, однако есть 2 проблемы: 1) Как найти площадь такого многоугольника по координатам вершин (прошу растолковать формулу или поделиться ссылкой на источник). 2) Определение кол - ва целочисленных точек на сторонах. Спасибо.
C++ Ошибка 2094 Задали написать класс, вот собственно он: #pragma hdrstop #pragma argsused #include <iostream.h> #include <tchar.h> #include <stdio.h> class Array { int *a; int n; подробнее

Показать сообщение отдельно
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,397
31.10.2012, 13:39     Быстрая проверка натурального числа на простоту
Цитата Сообщение от AEXks Посмотреть сообщение
ValeryS, что то пример работает не верно. Наверно вы не проверяли результат.
писал ночью на память вот и пропустил строку( да и порядок строк попутал)
поскольку цикл лишний раз крутится нужна компенсация
в общем вот проверка четырех алгоритмов два моих и два твоих(все работает идентично)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "stdafx.h"
int MyAlgor(unsigned long long dig)
{
int sum;
unsigned int mod;
for(sum=0 ; dig != 0;  sum+=8)
  {
   
   mod= dig&0xFF;
   dig >>= 8;
   }
sum-=8;
for( ; mod != 0;sum++ )
{
 mod >>= 1;
}
return sum;
}
int My1Algor(unsigned long long dig)
{
    int sum;
    unsigned int mod;
for(sum=0 ; dig !=0;  sum+=32)
  {
   mod= dig&0xFFFFFFFF;
   dig >>= 32;
   }
sum-=32;
 
dig=mod;
for(; dig!=0;  sum+=16)
  {
   mod= dig&0xFFFF;  
  dig >>= 16;
  }
sum-=16;
dig=mod;
for(; dig != 0;  sum+=8)
  {
    mod= dig&0xFF;
     dig >>=8;
  
   }
sum-=8;
dig=mod;
for(; dig != 0;  sum+=4)
  {
     mod= dig&0x0F;
      dig >>= 4;
   
   }
sum-=4;
dig=mod;
for(; dig != 0;  sum+=2)
  {
      mod= dig&0x3;  
      dig >>= 2;
  
   }
sum-=2;
dig=mod;
for( ; mod != 0;sum++ )
{
 mod >>= 1;
}
return sum;
}
int AEXksAlgor(unsigned long long dig)
{
int sum=0;
    for( ; dig != 0; )
{
     dig >>= 1;
     ++sum;
} 
    return sum;
}
int AEXksHiAlgor(unsigned long long dig)
{
int sum=0;
for( ; dig >= 0xFF; )
{
    dig >>= 8;          
    sum += 8;
}
for( ; dig != 0; )
{
    dig >>= 1;
    ++sum;
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
   printf("%d %d %d %d\n",MyAlgor(-1),My1Algor(-1),AEXksAlgor(-1),AEXksHiAlgor(-1));
   printf("%d %d %d %d\n",MyAlgor(1),My1Algor(1),AEXksAlgor(1),AEXksHiAlgor(1));
   for(int i=0;i<32;i++)
   {
     printf("------------- i=%d --------------\n",i);   
     printf("%d %d %d %d \n",MyAlgor(1<<i),My1Algor(1<<i),AEXksAlgor(1<<i),AEXksHiAlgor(1<<i));
    printf("---------------------------\n");
   }
    return 0;
}
Цитата Сообщение от Catstail Посмотреть сообщение
Но самый быстрый алгоритм проверки числа (до 10000) на простоту, на мой взгляд, таков:
Создать упорядоченный массив всех простых чисел от 2 до 9973
вообще то здесь речь шла о числах как минимум 2 в 64 прикинь размер массива
 
Текущее время: 20:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru