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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
natalyma
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 7
#1

Вывести простые числа в текстовый файл - C++

23.11.2012, 18:55. Просмотров 253. Ответов 6
Метки нет (Все метки)

Проблема заключается в том что он у меня выводит непонятные символы в Txt Что мне с этим сделать ?
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
#include <stdio.h>
#include <iostream>
#include "math.h"
 
 
using namespace std;
 
int main()
{
    FILE *p;
    p=fopen("p.txt","wt");
    for (int i=1;i<10000;i=i+2)
    {
        if (i<9)
        {
          putc(i,p);
        }else { 
         for (int j=3;j<sqrt(i);j=j+2){
         if (i%j ==0 ) break; 
         putc(i,p);
         }
     }
    }
 
    fclose(p);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
 Аватар для Байт
15043 / 9445 / 1383
Регистрация: 24.12.2010
Сообщений: 17,477
23.11.2012, 19:40     Вывести простые числа в текстовый файл #2
putc выводит именно символ (соответствующий числу i. Так, если i=101, выведется символ 'e'
Чтоб вывести число надо printf("%d\n", i);
natalyma
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 7
23.11.2012, 19:44  [ТС]     Вывести простые числа в текстовый файл #3
Теперь другая проблема =( он числа почему то повторяет некоторые, не подскажите почему ?
91
95
97
97
97
97
101
101
101
101
103
103
103
103
107
107
107
107
Байт
Эксперт C
 Аватар для Байт
15043 / 9445 / 1383
Регистрация: 24.12.2010
Сообщений: 17,477
23.11.2012, 19:51     Вывести простые числа в текстовый файл #4
Странно, что повторяет так мало чисел.
Попробуй ручками прокрутить внутренний цикл для i = 101
natalyma
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 7
23.11.2012, 19:57  [ТС]     Вывести простые числа в текстовый файл #5
Цитата Сообщение от Байт Посмотреть сообщение
Странно, что повторяет так мало чисел.
Попробуй ручками прокрутить внутренний цикл для i = 101
проверяет он та все числа, но те которые оканчиваются на 3 7 9 повторяются под конец несколько раз =\
а прокрутить внешний цикл нельзя =\ мне надо уложится в задание
вывести все простые числа в фаил от 1-до миллиарда за 5 минут ррп
Байт
Эксперт C
 Аватар для Байт
15043 / 9445 / 1383
Регистрация: 24.12.2010
Сообщений: 17,477
23.11.2012, 20:40     Вывести простые числа в текстовый файл #6
natalyma, да у тебя алгоритм неверный. Во внутреннем цикле - ошибка. Вот ее и ищи!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2012, 17:29     Вывести простые числа в текстовый файл
Еще ссылки по теме:

Вывести простые числа C++
C++ Найти простые числа в заданном диапазоне с помощью решета Эратосфена и вывести их в файл
C++ Вывести простые числа из массива
C++ Вывести простые числа от 1 до 100
Вывести все простые числа в диапазоне от a до b C++

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

Или воспользуйтесь поиском по форуму:
natalyma
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 7
25.11.2012, 17:29  [ТС]     Вывести простые числа в текстовый файл #7
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
#include <stdio.h>
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
int main()
{
    FILE *p;
    bool yes;
    p=fopen("p.txt","wt");
    for (int i=1;i<10000000;i=i+2)
    {
        if (i<9)
        {
         fprintf(p,"%i\n",i);
         continue;
        }
         
        yes=true;
        for (int j=3;j<=sqrt(i);j=j+2)
        {
           if (i%j == 0 )
           {
            yes=false;
            break;
           }
        } 
         if (yes==true) fprintf(p,"%i ",i); 
    }
 
    fclose(p);
    return 0;
}
Этот код почемуто работает =\
Yandex
Объявления
25.11.2012, 17:29     Вывести простые числа в текстовый файл
Ответ Создать тему
Опции темы

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