первая программа работает, но необходимо реализовать программу в базисе схем с процедурами.
вторая программа считает сумму только при N=3, помогите разобраться почему при N>3 отказывается работать программа
Основная программа:
Код:
namespace ConsoleApplication15
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите число\n");
int N = int.Parse(Console.ReadLine());
int a = 2;
int S = 0;
while (a <= N)
{
int p = 1;
int i = 2;
while (i <= a / 2)
{
if (a % i == 0)
{
p = 0;
break;
}
i = i + 1;
}
if (p==1)
{
S = S + a;
}
a = a + 1;
}
Console.WriteLine("Сумма простых чисел " + S);
Console.ReadKey();
}
}
}
Программа в базисе схем с процедурами:
Код:
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите число N");
int N = int.Parse(Console.ReadLine());
int a = 2;
int s = 0;
int p = 0;
int i = 0;
int v = F2(a, s, p, i, N);
}
static int F2(int a, int s, int p, int i, int N)
{
int c;
int p1;
int i1;
if (a <= N)
{
p1 = 1;
i1 = 2;
c = F3(a, s, p1, i1, N);
}
else {
c = s;
Console.WriteLine("Сумма простых чисел " + c);
Console.ReadKey();
}
return c;
}
static int F3(int a, int s, int p, int i, int N)
{
int d;
p = 1;
i = 2;
if (i <= a / 2)
{
d = F4(a, s, p, i, N);
}
else
{
d = F5(a, s, p, i, N);
}
return d;
}
static int F4(int a, int s, int p, int i, int N)
{
int q;
int h;
if (a % i == 0)
{
q = F3(a, s, p, i, N);
}
else
{
h = i + 1;
q = F5(a, s, p, h, N);
}
return q;
}
static int F5(int a, int s, int p, int i, int N)
{
int f;
int s1;
int a1;
if (p == 1)
{
s1 = s + a;
a1 = a + 1;
f = F2(a1, s1, p, i, N);
}
else
{
a1 = a + 1;
f = F2(a1, s, p, i, N);
}
return f;
}
}
}