编写自定义函数prime(int x),判断x是否是素数并利用此函数编写程序分别找出1到5000之间的素数

1)x是素数2)x的各位数字及x本身都是素数3)x是素数,从个位开始依次去掉一位数字后仍然是素数,如233是素数,23和2也是素数,则233满足条件... 1)x是素数
2)x的各位数字及x本身都是素数
3)x是素数,从个位开始依次去掉一位数字后仍然是素数,如233是素数,23和2也是素数,则233满足条件
展开
 我来答
百度网友0be35d8bc
2011-05-21 · TA获得超过359个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:289万
展开全部
这个就像楼上说的那样,起码说说是用什么语言吧?我就以C来说一下:
第一你可以把这个函数或者说方法分成两个来做:一个专门用来判断是否是素数,一个完成你想要的另两个子条件2)x的各位数字及x本身都是素数;3)x是素数,从个位开始依次去掉一位数字后仍然是素数,如233是素数,23和2也是素数,则233满。。。

那么大致的结构可以就这么定下来了:

public bool Zidingyi(int a)
{
if(Prime(a))
{
......
}
}

public bool Prime(int a)
{
......
}

那么再说说怎么判断素数,其实这个还是很简单的,这个其实上网找找有很多内容的,我就说一个比较好理解的逻辑
1、排除2(if(x==2))
2、判断是否为偶数((f(x%2==0)),是的话根本不用做下面的步数
3、让x自除(3,4,5...,直到x/2)(如果有一个不符合用break跳出循环,它就不是素数)
贴一段C#的输出素数的方法:
Console.WriteLine("请输入初始值:");
int 初始 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入终止值:");
int 终止 = Convert.ToInt32(Console.ReadLine());

int 中间变量 = 初始;
int 最大除数;
int i = 3;
bool IsSuShu = false;
while (中间变量 <= 终止)
{
if ((中间变量 % 2) == 1)
{
最大除数 = 中间变量 / 2 + 1;
for (i = 2; i <= 最大除数; i++)
{
if ((中间变量 % i) == 0)
{
IsSuShu = false;
break;
}
else
{
IsSuShu = true;
}
}
}
if (IsSuShu == true)
{
Console.WriteLine(中间变量);
}
中间变量++;
IsSuShu = false;
}

最后在说一下你自己说的两个子功能:
其实就是一个取数的问题,其实也是很好做的:a=a%10,a=a%10。。。。(求余,那么你能将每一位的数求出来,直到完毕) a=a/10(整除舍掉最后一位) a=b/100(整除舍掉最后两位)。。。。。。
匿名用户
2011-05-18
展开全部
也不说什么语言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式