是否有像“int”或“float”这样的函数,但对于素数?

时间:2016-02-07 12:12:05

标签: c++ primes

问题可能不清楚,我要求和搜索的是:在C ++编程中,用命令引入变量类型

  • int,for integer
  • bool,for boolean

依旧......

我想知道是否有类似的方式来定义像

这样的“素数”

素数n;

所以当他的程序会调用$ n $时,它会自动只接受素数。

使用简单程序的应用程序:假设我想创建操作的整数部分列表

π^ N

其中π= Pi且n =素数。 在数学上它将是

地板[π^ N]

不,我现在如何编写一个程序来列出一些素数,例如:

    int main () 
{
    for (int i=2; i<100; i++) 
    {
        bool prime=true;
        for (int j=2; j*j<=i; j++)
        {
            if (i % j == 0) 
            {
                prime=false;
                break;    
            }
        }   
        if(prime) cout << i << " ";
    }
    return 0;
}

但我不确定如何继续......我也很抱歉表达我想做的事情!

3 个答案:

答案 0 :(得分:1)

关于所有提到的语言标签的答案是否。

Primes包含在int中,因为所有素数都是整数。

查找整数是否也是素数需要在函数中实现算法。

假设存在素数类型,并且使用4不是素数来初始化它...编译器应该说类似不匹配的东西,不允许你运行程序。 到目前为止听起来很简单但是当有一个非常大的数字时会发生什么。它必须应用一种算法,这意味着它不再是编译器问题。

答案 1 :(得分:0)

有一些专门的语言和库。例如Pari/Gp有一个很好的解释器,有许多与素数相关的函数(解释器调用C库,所以它很快):例如

primes(100)

为您提供前100个素数的向量。甚至还有isprime的素性测试。开始玩这个真的很好很容易。当你对重代数理论的东西感兴趣时,这也是可能的。你的例子:

P = precision(Pi, 1000)
vector(100, i, floor((P^prime(i))))

第一行创建具有足够高精度的PI进行求幂,第二行创建一个列表,其中评估为floor(Pi ^ p),p值超过前100个素数。

有一个程序gp2c可以使用底层库将高级gp解释器脚本转换为可编译的C程序。您可以在需要更高速度时使用它,但首先:使用gp Interpreter。

还有其他套餐,我也建议SAGE。它是Maple和Mathematica的开源替代品。 SAGE使用Python作为脚本语言,您可以在这里使用:

for p in primes_first_n(100): print p

[ floor( pi^p ) for p in primes_first_n(100) ]

您可以通过为online version of SAGE

创建帐户来试用它

答案 2 :(得分:-1)

不是我的朋友,没有任何选择,比如你问的任何事情 但有一些方法:
首先,使用Structure,Union,Typedef这些用于在c lang

中创建数据类型

或者,其次,创建一个函数prime()并添加到库中,并且只要你想要包含那个头文件然后使用那个fxn
将用户定义函数添加到库中(使用tlib.exe-TurboLibrarian): -
信息:-in cmd-tlib math.lib + c:\ prime.obj(注意:使用&#39; - &#39;从库中删除fxn)
使用方法:
#包括&LT;文件math.h&GT;
........................
........................
prime(n)
blah blah blah
........................
通过这种方式你可以很快检查素数并将它们添加到数组中,然后你将得到一个只包含素数的数组(与数据类型接受素数相同)

COOL NO?