Wątek przeniesiony 2014-12-26 19:11 z przez somekind. Powód: Wątek dotyczący podstaw

Wykrywanie liczb pierwszych - podstawy

Odpowiedz Nowy wątek
2014-12-26 18:36
0

Program zawiesza się. Nie wiem o co chodzi. Proszę o pomoc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Science_Bitch_
{
    class MainClass
    {
        static void Main(string[] args)
        {
            int rangefrom = Convert.ToInt32(Console.ReadLine());
            int rangeto = Convert.ToInt32(Console.ReadLine());
 
            for (int i=rangefrom; i<rangeto; i++)
            {
                int z=0;
                for (int j = 0; j < i; j++)
                {
                    double d = i / j;
                    if (d == i / j) z++;
                }
                if (z==2) Console.WriteLine("i");
            }
        }
    } 

Pozostało 580 znaków

2014-12-26 18:52
2

Program zawiesza się. Nie wiem o co chodzi

Bo nie czytasz błędów.

An unhandled exception of type 'System.DivideByZeroException' occurred in TestConsoleApplication.exe

Additional information: Attempted to divide by zero.

Pozostało 580 znaków

2014-12-26 20:25
0

Dzięki za pomoc :D

Więc program działa, lecz z liczb pierwszych wykrywa tylko 2. Wiecie może o co chodzi?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Science_Bitch_
{
    class MainClass
    {
        static void Main(string[] args)
        {
            int rangefrom = Convert.ToInt32(Console.ReadLine());
            int rangeto = Convert.ToInt32(Console.ReadLine());
 
            for (int i=rangefrom; i<rangeto; i++)
            {
                int z=0;
                for (int j = 1; j < i+1; j++)
                {
                    double d = i / j;
                    if (d == i / j) z++;
                }
                if (z==2) Console.WriteLine(i);
            }
            Console.ReadKey();
        }
 
    }
} 
edytowany 2x, ostatnio: irqize, 2014-12-26 20:28
Edytuj swoje posty zamiast tworzyć nowych, jeśli chcesz coś jeszcze dodać; - furious programming 2014-12-26 21:16

Pozostało 580 znaków

2014-12-26 20:39
0

Ok, już wiem, szwankowało sprawdzanie czy liczba jest pierwsza. Przepraszam za tak głupie pytania, ale jestem początkującym, bardzo młodym programistą :D.

Pozostało 580 znaków

2014-12-26 20:46
2

Taka podpowiedź: j < i+1 możesz zastąpić j <= i
Jest też coś takiego jak operator % zwraca on resztę z dzielenia, np:

Console.WriteLine(7%3);
Console.WriteLIne(6%2);

output

1
0

dodanie znacznika <code class="csharp"> - @furious programming

edytowany 1x, ostatnio: furious programming, 2014-12-26 21:16

Pozostało 580 znaków

2014-12-26 20:47
0

Ok, dzięki za podpowiedź :D

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0