Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 16.11.2012
Сообщений: 32
1

Простые числа и количество нулей

02.05.2013, 17:12. Просмотров 640. Ответов 2
Метки нет (Все метки)

Задание: Нужно ввести число N с клавиатуры. Вывести на экран простые числа до N. И среди них найти число с максимальным числом нулей.
При вводе 100 выводит 907 как и должна, а при вводе 10000 выводит 9907, а должна 9007. в Чем ошибка? Помогите исправить.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
void main()
{
 
    int N,n,k,m=0,fl=0,f,j=0,q=0,w=0,e=0;
    cin>>N;
    for (n=1;n<N;n++)
    {
     m=0;
     for (k=2;k<n;k++)
         {
          if (n%k==0) m=1;
         }
        if (m==0)
        {
        cout<<n<<" ";
        cout<<endl;
          {
          f=n;
          f=f/10;
          while (f>0)
              {
              if (f%10==0)
                {
                  fl=fl+1;
                   if (fl>0) j=n;
                   if (fl>1) q=n;
                   if (fl>2) w=n;
                }
              f=f/10;
              }
         }
 }
                  }
    cout<<"max="<<j<<" "<<endl;
    cout<<"max2="<<q<<" "<<endl;
    cout<<"max3="<<w<<" "<<endl;
    getch();
}


Добавлено через 17 минут
Понял я свою ошибку. "if (fl>0)" вот здесь ошибка. у меня присваиваются значения не правильно. т.е и в 9007 и в 9907 есть ноль,поэтому 9907 выводит. Как мне присвоить чтобы не было такой ошибки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2013, 17:12
Ответы с готовыми решениями:

Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах
#include &lt;iostream&gt; #include&lt;conio.h&gt; main() { setlocale(LC_ALL, &quot;Russian&quot;); int N,digit = 0;...

Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах
Дано натуральное число N (N &gt; 9). Определить количество нулей в цифровой записи числа, кроме нулей...

Определить количество нулей в цифровой записи числа, кроме нулей в младших разрядах (Pascal -> С++)
Var i: longint; N: integer; begin write('input Nomber, pleeeaaase: '); readln(i); N:= 0;...

Количество нулей в записи числа
Помогите пожалуйста написать эдакое... Дано натуральное число n. Подсчитать количество нулей в...

2
667 / 195 / 29
Регистрация: 10.05.2012
Сообщений: 595
02.05.2013, 17:13 2
emiln00b, если я вас правильно понял, то вот :
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
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
 
using namespace std;
 
int zero_count(int v) {
    int cnt = 0;
    while (v > 0) {
        cnt += (v % 10 == 0);
        v /= 10;
    }
    return cnt;
}
 
int isPrime (int a){
    if (a <= 1)
        return false;
    for(int i = 2; i*i <= a; i++) {
        if (a % i == 0) {
            return false;
        }
    }
    return true;
}
 
int main(){
    int n;
    cin >> n;
    int cnt = 0;
    int mx = 2;
    for (int i = 0; i <= n; i++) {
        if (isPrime(i)) {
            int c = zero_count(i);
            printf("%d ", i);
            if (c > cnt) {
                cnt = c;
                mx = i;
            }
        }
    }
    cout << endl << mx;
    return 0; 
}
Добавлено через 1 минуту
emiln00b, 907 > 100 (число 907 не может быть ответом до 100)
1
0 / 0 / 1
Регистрация: 16.11.2012
Сообщений: 32
02.05.2013, 17:19  [ТС] 3
Цитата Сообщение от Ternsip Посмотреть сообщение
907 > 100 (число 907 не может быть ответом до 100)
Опечатка.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2013, 17:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Количество нулей в двоичной записи числа
Мне нужно посчитать количество нулей в двоичной записи числа. Как стандартными функциями можно...

Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа....

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using std::cout;...

Найти количество нулей в конце записи факториала числа
Найти количество нулей в конце записи факториала числа n. Подскажет, кто алгоритм? Или хотя бы в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.