确定数字是否包含特定的素因子

时间:2013-05-19 11:15:30

标签: c# prime-factoring

下面是我的代码,我无法按照应有的方式工作。

我必须找到素数(这很好)。然后,如果素数是7和3  (63 = 7 * 3 * 37 = 7)这个数字是神奇的,如果它包含任何其他数字(98 = 7 * 7 * 242 = 7 * 3 * 2)则不是。

我有点被困在这里:

if (b != 7 && b != 3)

                        Console.WriteLine(k);
 else
                        Console.WriteLine(j);

我不知道如何修复它。这是完整的代码:

         string k="isnt magical";
        string j = "is magical";
        int a, b;
        Console.WriteLine("Vnesite svoje stevilo: ");
        a = Convert.ToInt32(Console.ReadLine());
        for (b = 2; a > 1; b++)/
            if (a % b == 0)
            {

                while (a % b == 0)
                {
                    a /= b;

                }


                if (b != 7 && b != 3)
                    Console.WriteLine(k);
                else
                    Console.WriteLine(j);
       }

1 个答案:

答案 0 :(得分:0)

您正在为每个因素打印"isnt magical""is magical"。 您的代码应如下所示:

string k = "isnt magical";
string j = "is magical";
int a, b;
Console.WriteLine("Vnesite svoje stevilo: ");
a = Convert.ToInt32(Console.ReadLine());

var allMagical = true;
for(b = 2; a > 1; b++) if(a % b == 0)
{
    while(a % b == 0) a /= b;
    if(b != 7 && b != 3) allMagical = false;
}

Console.WriteLine(allMagical ? j : k);