,我需要解決這個問題,但即時通訊卡在得到的因素,但我需要做的是...得到連續的因素,C#
正數,n是連續-因素當且僅當它具有因子i和j,其中i> 1,j> 1並且j = i + 1。編寫名爲isConsecutiveFactored的函數,如果函數的參數是連續因式分解的,則返回1,否則返回0. 函數簽名爲 int isConsectiveFactored (int n)
函數簽名是 int isConsectiveFactored(int n) 示例
如果n爲24返回1,因爲24 = 2 * 3 * 4和3 = 2 + 1
如果n是105返回0,因爲105 = 3 * 5 * 7和5!= 3 + 1和7!= 5 + 1
如果n爲90返回1,因爲90因子包括2和3以及3 = 2 + 1
到目前爲止我一直能夠得到因子即如果這個數字是24,那麼我能夠得到 2和12,但即時通訊卡在那裏,並衝裁....
using System;
using System.Collections.Generic;
using System.Text;
namespace isConsecutiveFactored
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(isConsecutiveFactored(24));
}
private static int isConsecutiveFactored(int p)
{
foreach (int a1 in getFactor(24))
{
Console.WriteLine(a1);
}
return 0;
}
private static List<int> getFactor(int p)
{
List<int> factor = new List<int>();
int max = (int)Math.Sqrt(p);
for (int i = 1; i <= max; i++)
{
if (i != 0)
{
if ((p % i) == 0)
{
if (i != max)
{
if ((p/i) != 1 && (p/i) != p)
{
factor.Add(i);
factor.Add(p/i);
//Console.WriteLine((p/i) + " " + "this is the factor");
}
}
}
}
//
}
List<int> fac = factor.GetRange(0, 2);
return fac;
}
}
}
任何人可以幫助我解決這個.....