判断一个很大的数,比如手机号,是素数怎么判断?我用C语言做好像不行,int类型太小。

如题所述

第1个回答  2012-11-27
long 好像十几位吧,呵呵
绝对够用
再大的数,应该像字符串一样处理吧,应该有专门的程序代码,自己找找吧,呵呵
第2个回答  2012-12-07
您可以用 double 型。long int型才有10位在VC中
第3个回答  2012-12-01
哈哈,用64位整数就可以(表示范围是正负1.9*10^19左右吧),
数据类型是long long(G++编译器)或者__int64(VC6.0之类的编译器),
编译器如果是visual studio的话两者都可以。

具体用法跟普通的int是一样的,这个就不用教你了。
更大的数用C语言就没招了,只能自己手写高精度运算。用Java会方便一些。

另外判断时最好用Miller-Rabin Primality Test(米勒罗宾素性测试)而不是简单的试除法。

有问题还可以继续追问。本回答被提问者和网友采纳
相似回答