社区
C#
帖子详情
回文素数算法
灰鸟会灰
2009-06-02 01:27:51
1、对于任意大于1的整数,若仅包含1和它本身两个因子,那么它是素数;如果一个素数,无论从左到右读,还是从右往左读,都是同一个数,那么它就是回文素数。例如,11,131就是回文素数。请设计一个回文素数类,用户能使用此类获取特定长度的回文素数。要求:
a、任何用户调用该类,都是使用同一个实例
b、用户输出数字长度大于等于3位
c、相邻三次返回结果不能相同
d、无结果时返回-1
怎么编程实现?
...全文
492
17
打赏
收藏
回文素数算法
1、对于任意大于1的整数,若仅包含1和它本身两个因子,那么它是素数;如果一个素数,无论从左到右读,还是从右往左读,都是同一个数,那么它就是回文素数。例如,11,131就是回文素数。请设计一个回文素数类,用户能使用此类获取特定长度的回文素数。要求: a、任何用户调用该类,都是使用同一个实例 b、用户输出数字长度大于等于3位 c、相邻三次返回结果不能相同 d、无结果时返回-1 怎么编程实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
光宇广贞
2009-06-03
打赏
举报
回复
生成和测试N位大数素的方法
光宇广贞
2009-06-03
打赏
举报
回复
存成图片了,找我要。
光宇广贞
2009-06-03
打赏
举报
回复
给你找了篇生成和测试N位大素数的方法。
灰鸟会灰
2009-06-03
打赏
举报
回复
我对单例模式还不太熟悉,是不是构造方法不能有参数?
灰鸟会灰
2009-06-03
打赏
举报
回复
[Quote=引用 11 楼 hikaliv 的回复:]
C的话两种法,一是建缓存,保证三次不同,或者如果算法可以设种子的话,三次不同的种子,必得出三种结果。[/Quote]
可以用static替代缓存吗?
灰鸟会灰
2009-06-03
打赏
举报
回复
噢,原来获取的素数是一个,
我一直以为要把所有的回文素数都显示出来
光宇广贞
2009-06-03
打赏
举报
回复
[Quote=引用楼主 svtme 的帖子:]
1、对于任意大于1的整数,若仅包含1和它本身两个因子,那么它是素数;如果一个素数,无论从左到右读,还是从右往左读,都是同一个数,那么它就是回文素数。例如,11,131就是回文素数。请设计一个回文素数类,用户能使用此类获取特定长度的回文素数。要求:
a、任何用户调用该类,都是使用同一个实例
b、用户输出数字长度大于等于3位
c、相邻三次返回结果不能相同
d、无结果时返回-1
怎么编程实现?
[/Quote]
使用同一个实例,明显需要单例模式来做。
就是回文数至少是三位长度吧。
C的话两种法,一是建缓存,保证三次不同,或者如果算法可以设种子的话,三次不同的种子,必得出三种结果。
Profiteerchen
2009-06-03
打赏
举报
回复
a、任何用户调用该类,都是使用同一个实例 用单件模式
灰鸟会灰
2009-06-03
打赏
举报
回复
加上static就解决了吗?
hecker728
2009-06-03
打赏
举报
回复
a、任何用户调用该类,都是使用同一个实例 --使用静态类
b、用户输出数字长度大于等于3位 --大于2位才输出,否则无结果,返回-1
c、相邻三次返回结果不能相同 --这个不是太明白。(缓存3次返回结果(由于结果跟输入有关)也 就是缓存3次输入。再次输入与之前3次比较
d、无结果时返回-1 --这个不用说了吧
灰鸟会灰
2009-06-03
打赏
举报
回复
丿,没人能解决吗
灰鸟会灰
2009-06-02
打赏
举报
回复
没难度,算法代码写好了,
谁能按要求改一下?
public class Mersenne
{
private int MLength;
public Mersenne(int length)
{
MLength = length;
}
// 判断是否素数
bool IsPrimary(int n)
{
if (n < 2)
return false;
else
{ if (n == 131)
{
n = 131;
}
for (int i = 2; i <= (int)Math.Sqrt(n); i++)
{
if (n % i == 0)
return false;
}
}
return true;
}
public string getPrimary()
{
StringBuilder primary = new StringBuilder(); // 用来保存回文素数
if (MLength == 1) // 如果是个位数
Console.WriteLine("2,3,5,7");
else if (MLength == 2) // 如果是十位数
Console.WriteLine("11");
else
{
int InitNum = (int)Math.Pow(10, MLength - 1); // 初始化指定长度的数,1后跟n个0
int[] Pcells = new int[MLength]; // 保存素数的每位数字
for (int i = InitNum; i < InitNum * 10 - 1; i++)
{
if (IsPrimary(i))
{
int m = InitNum;
int q = i;
for (int k = 0; k < MLength; k++)
{
Pcells[k] = q / m; // 从左位开始取得每一位数
q = q % m; // 去掉最左位的数
m = m / 10;
}
bool b = true;
for (int j = 0; j <= MLength/2; j++)
{
if (Pcells[j] != Pcells[MLength - j - 1])
b = false;
}
if (b == true)
{
primary.Append(i);
primary.Append("\n");
}
}
}
}
if (primary.Length == 0)
return "-1";
else
return primary.ToString();
}
static void Main(string[] args)
{
Mersenne m = new Mersenne(3);
Console.WriteLine(m.getPrimary());
}
}
格拉
2009-06-02
打赏
举报
回复
有难度吗?LX说
灰鸟会灰
2009-06-02
打赏
举报
回复
要求可以不考虑,先实现算法
haocai0
2009-06-02
打赏
举报
回复
我们老师也要我们做过这种题目,但没教我们到底改怎么做。哎……
linlusheng
2009-06-02
打赏
举报
回复
算法已经很清楚,就是要求有点多
moonshineidolon
2009-06-02
打赏
举报
回复
帮顶
回文素数
是什么以及学习了解
回文素数
的意义是什么
- 计算机科学家可以通过优化
回文素数
检测
算法
来提升软件的效率,从而在各种计算任务中获得更好的表现。 #### 三、结语 综上所述,学习
回文素数
不仅能够深化对数学基础理论的理解,还能拓展到密码学、计算机科学等...
python实现反向数,回文数,
回文素数
,反素数,梅森素数,双素数。
本文将详细介绍如何用Python实现反向数、回文数、
回文素数
、反素数、梅森素数以及双素数的判断。 首先,让我们定义这些概念: 1. **反向数**:一个数的反向数是将其每一位数字颠倒后得到的新数。例如,123的反向数...
回文素数
的介绍.docx
此外,
回文素数
还可以作为
算法
测试或编程比赛中的题目,激发学习者的兴趣。 #### 五、
回文素数
的历史与发展
回文素数
的概念最早可以追溯到数学发展的初期阶段。随着时间的推移和技术的进步,人们对
回文素数
的研究...
回文素数
.c
回文素数
算法
不仅对编程学习者有锻炼作用,而且涉及的数学知识与
算法
逻辑也能增进学习者对基础
算法
的理解能力。在计算机科学领域,类似的
算法
可以应用于密码学、加密技术等领域,因为素数在一些加密
算法
中扮演着重要...
回文素数
的介绍.doc
**搜索
算法
**:目前存在多种
算法
用于搜索
回文素数
,其中最为常见的包括暴力搜索、素数筛法等。随着
算法
的不断优化和技术的进步,新的搜索策略也在不断涌现,比如利用
回文素数
本身的特性来减少不必要的计算步骤,从而...
C#
111,125
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章