VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 961|回复: 6

什么是超级素数?

[复制链接]

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-15 15:30:01 | 显示全部楼层 |阅读模式
前两天我问了超级素数如何写,现在反而越来越模糊了.哪位老师能给我个明确的超级素数的概念啊.到底怎么样才叫超级素数?
回复

使用道具 举报

0

主题

9

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-12-16 00:30:01 | 显示全部楼层
超级素数:一个素数,去掉个位是素数;去掉个位和十位也是素数;直到保留到最高位依然是素数,这个素数称为超级素数。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-21 19:00:01 | 显示全部楼层
我也算是明白了

回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-21 19:15:01 | 显示全部楼层
一个n位超级素数是指一个n位正整数,它的前1位,前2位, . . . , 前n位均为素数,例如,7331是个4位超级素数,因为7,73,733,7331均为素数。

#include <stdio.h>
#include <math.h>

#define DEEP 10000 //为循环深度

int isPrime(int p);
int isSuperPrime(int p);

int isSuperPrime(int p)
{
    if(isPrime(p)&&p>10)
    {
        while(p>10)
        {
            p/=10;
            if(!(isPrime(p)))
                return 0;
        }
        return 1;
    }
    return 0;
}

int isPrime(int p)
{
    int a,i;
    if(p<2)
        return 0;
    else if(p==2)
        return 1;
    a=(int)sqrt(p+1);
    for(i=2;i<=a;i++)
        if(!(p%i))
            return 0;
    return 1;

}
int main()
{
    int i;
    for(i=2;i<DEEP;i++)
        if(isSuperPrime(i))
            printf("%d\t",i);
    getch();
    return 0;
}
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-21 19:30:01 | 显示全部楼层
好汗的数学问题啊!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-21 19:45:01 | 显示全部楼层
知道了超级素数是什么,但是有什么用啊?
回复

使用道具 举报

0

主题

1

帖子

1.00

积分

新手上路

Rank: 1

积分
1.00
发表于 2020-12-24 10:22:41 | 显示全部楼层
这样是不是可以遍历出来前x位的素数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表