Вычислить сумму всех простых чисел от 1 до N в Dev C++

Отщеплен от топика Сумма простых чисел от 1 до 1000

Здравствуйте! «Вычислить сумму всех простых чисел от 1 до N», решите, пожалуйста эту задачу на Dev-C!!! Очень надо)

#include <iostream>
using namespace std;
int main()
{
    int n,summ=0;
cin>>n;
for (int i=1; i<n+1; i++)
{summ=summ+i;}
cout<<summ;
return 0;
}

Первая проблема в том, что программу надо написать на Dev-C. И ни на каком другом языке.

А вторая проблема — что простые числа... как бы не совсем простые )))

C не знаю. Но на C++ код таков:

#include <iostream>//для cout и cin
#include <cstdlib>//для system("pause");
#include <cmath>//для функции ceil
using namespace std;

int main() {
    setlocale(LC_ALL, "");//русификация
    int p,n,summ=2;
    double k;
    int f=0;
    cout<<"Введите последнее натуральное число для определения суммы всех предыдущих простых, включая заданное:"<<endl;
    cin>>n;
    for (int i=3; i<n+1; i++)
    {
        if (i%2!=0)//если нечётное число, работаем дальше (простых чисел четных нету)
        {
            k=sqrt(i);//корень вычисляем, для отсеивания лишних делителей
            p=ceil(k);//округляем полученное значение в большую сторону
            f++;//само на себя делится в любом случае, поэтому увеличиваем индикатор простоты числа
            //число 1 в этот индикатор не попадает, поскольку мы ищем делители начиная с 2

            for (int j=2; j<=p; j++)//прощупываем все делители
            {
                if (i%j==0)//если делится без остатка на делитель, значит четное. тогда индикатор увеличиваем на один
                {
                    f++;
                }
            }
            if (f<2)//если набежит индикатор меньше одного (а это условие простоты числа), то добавляем его в сумму
            {
                summ+=i;
            }
            f=0;//обнуляем индикатор для последуюшего анализа
        }
    }
    cout<<"Сумма простых чисел до "<<n<<" включительно = "<<summ<<endl;
    system("pause");
    return 0;
}

Разъяснение по поводу решения в первом методе вот здесь http://ru.wikihow.com/проверить,-является-ли-число-простым

Для C библиотеки будут выглядеть так:

 #include <stdio.h>//для cout и cin
#include <stdlib.h>//для system("pause");
#include <math.h>//для функции ceil

В остальном нужно подправить cout и cin на printf и scanf. Да и вообще программа должна запуститься даже на Dev-C.

helper, программа хотя и работает, но явно сыровата. Попробуй её оптимизировать. Кстати методы оптимизации рассматриваются в статье, на которую ты сам и ссылаешься.

#include <iostream>
using namespace std;
int main()
{
    int n,summ=0;
cin>>n;
for (int i=1; i<n+1; i++)
{summ=summ+i;}
cout<<summ;
return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.