Подсчет суммы факториалов простых чисел от 0 до 100 - C (СИ)
Формулировка задачи:
Написать программу которая считает сумму факториалов простых чисел от 0 до 100.
Для вычисления суммы простых чисел
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "locale.h"
#include "string.h"
#define N 9
int main(int argc, char *argv[]) {
int i=0,s=0,j=0,sum=0,a[N];
int factor=1,y;
int B=0;
for(i=0; i<N; i++){
a[i] = i;
}
a[1]=0;
for(s=2; s<N; s++){
if(a[s]!=0){
for(j=s*2; j<N; j+=s){
a[j]=0;
}
}
}
for(i=0; i<N; i++){
if(a[i]!=0){
B=a[i];
sum+=B;
}
}
printf("%d\n", B);
_getch ();
}Решение задачи: «Подсчет суммы факториалов простых чисел от 0 до 100»
textual
Листинг программы
#define N 100
double sum, f;
int lastF;
f = 2;
lastF = 2;
for(sum=2, n=3; n<=N; n+=2) {
for (i=3; i*i<=n; i+=2)
if (n%i==0) break;
if (i*i<=n) continue;
for (j=lastF+1; j<=n; j++) f *= j;
lastF = n;
sum += f;
}
printf("Сумма факториалов простых чисел %f\n", sum);
Объяснение кода листинга программы
В этом коде выполняется подсчет суммы факториалов простых чисел от 0 до 100. Вот список действий, которые выполняются в коде:
- Определяется константа N, которая равна 100.
- Инициализируются переменные sum, f и lastF. Значение переменной sum устанавливается равным 2, а значение переменной f - равным 2. Переменная lastF получает значение 2.
- Запускается цикл for, который начинается с sum=2 и n=3 и продолжается до тех пор, пока n не станет больше N. Каждый шаг цикла увеличивает n на 2.
- Внутри цикла for запускается еще один цикл for, который ищет все простые числа, которые делятся на n без остатка. Если такое число найдено, цикл прерывается.
- Если во внутреннем цикле не было найдено простых чисел, то выполняется еще один цикл for, который начинается с lastF+1 и продолжается до n. В этом цикле вычисляется факториал f путем умножения всех чисел от lastF+1 до n на f.
- После окончания внутреннего цикла переменная lastF обновляется значением n.
- К переменной sum добавляется значение переменной f.
- После окончания внешнего цикла выводится сообщение с помощью функции printf, которое содержит сумму факториалов простых чисел.