只写出来了计算2的68次方-1的方法,分解质因数想用穷举,并且理论可以尝试(longint值上限/10)以下的质因数,但当数据再扩大,即一个大数对一个大数求余时我就写不出来了。问一下这个问题是不是无解的,如果是那我就别折腾了,如果不是那给点提示。
//写的是C#,但不一定非要C#,算法问题,讨论算法就行了
//下面是怎么得到2的68次方-1的方法
using System;
namespace _9._9大数计算
{
class Program
{
static void Main(string[] args)
{
int[] Num = new int[30];
Num = Get2_68();
}
static int[] Get2_68()
{
int[] a = new int[30];
bool Plus = false;//是否进位参数
a[0] = 2;
for (int i = 1; i <= 68; i++)
{
for (int j = 29; j >= 0; j--)
{
Console.Write(a[j]);
}
Console.WriteLine(" {0}", i);
for (int j = 0; j < 30; j++)
{
a[j] = a[j] * 2;
if (Plus)
{
a[j]++;
Plus = false;
}
if (a[j] >= 10 && a[j] < 20)
{
a[j] = a[j] % 10;
Plus = true;
}
}
}
if (a[0] > 0)
{
a[0]--;
}
else if (a[0] < 0)
{
Console.WriteLine("这tmd算的什么玩意?a[0]都能小于0喽???");
}
return a;
}
}
}
a的返回值应该是最后一行的哪个再-1