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

Проверка на простоту числа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.61
Getchar
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 16
06.10.2011, 10:10     Проверка на простоту числа #1
как мне сделать так, чтобы узнать простое является число или составное, не через bool, а как-нибудь через оператор switch case: т е, case 1: "Число является Простым"; break
default: "Число составное" ; break

Как-то так.

Вот код программы через бул

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    double n;
    int i;
    bool prost_chislo;
    
    prost_chislo=true;
    
    cout << "Vvedite chiclo : ";
    cin >> n;
    
    double sqrt_n = sqrt(n);
    for (i=2; i <= sqrt_n; i++) 
        {
            if (fmod(n,i) == 0) 
            {
              prost_chislo = false;
             break;
            }
       }
      
    switch (prost_chislo)
    {
    case true:
              cout << "Vashe chislo prostoe.";
              break;
    default:
              cout << "Vashe chislo sostavnoe.";
              break;
    getchar();
    getchar();
    return 0;
}
}
 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
06.10.2011, 10:25     Проверка на простоту числа #2
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
#include<stdio.h>
 
_Bool prim(int tmp){
    _Bool k;
    int i;
    k = (tmp <= 1) ? 0 : 1;
    if (k){
        for (i = 2; i <= tmp / 2; ++i)
            if (!(tmp % i)){
                k = 0;
                return k;
            }
    }
    return k;
}
int main(){
    int i;
 
    for (i = 0; i < 100; ++i)
        switch(prim(i)){
            case 0: printf(" нет");
                    break;
            case 1: printf(" да %d ", i);
                    break;
        }
    printf("\n");
    return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.10.2011, 14:24     Проверка на простоту числа #3
Поиск простых чисел
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
06.10.2011, 18:28     Проверка на простоту числа #4
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
#include <iostream>
#include <cmath>
#include <cstdlib>
 
bool is_simple(unsigned int n)
{
   unsigned int max_d = static_cast<unsigned int>(pow(n, 0.5));
   for (unsigned int i = 2; i < max_d; ++i)
      if (!(n % i))
         return false;
         
   return true;
}
 
int main()
{
   unsigned int n;
   
   std::cout << "Enter the number" << std::endl;
   std::cin >> n;
   
   std::cout << (is_simple(n) ? "Simple" : "No simple") << std::endl;
   
   return EXIT_SUCCESS;
}
Yandex
Объявления
06.10.2011, 18:28     Проверка на простоту числа
Ответ Создать тему
Опции темы

Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru