用C语言如何判断素数

 我来答
天融信教育科技613
2018-06-28 · TA获得超过2439个赞
知道大有可为答主
回答量:1375
采纳率:58%
帮助的人:180万
展开全部
1,首先了解素数的定义,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。2,以下是C语言程序。
#include "stdio.h"
int main()
{
int n,flag=1,i;
scanf("%d",&n);//输入一个数n,判断它是否是素数。
for(i=2;i<n;i++)
{
if(n%i==0)// 根据素数的定义n依次除以小于它本身大于1的数
flag=0;//一旦有能被整除的数,表明 n不是素数,使得flag=0 。
}
if(flag==0)//根据flag的值判断n是否是素数
printf("%d不是素数",n);
else
printf("%d是素数",n);
return 0;
}
希望可以帮到你,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苯苯苯萘蒽
2018-07-24
知道答主
回答量:20
采纳率:75%
帮助的人:1.7万
展开全部

求素数的代码实在是太过经典,贴代码的话网上随便找一大堆,这里给你思路。

  1. 素数的定义是对于一个大于1的数,除了本身和1以外,不能被其它任何的数整除,就称之为素数。

2.所以你要做的就是给定一个数n,假设一个i∈(2,n-1),做n/i的操作,一旦发现可以整除,这个数就不是素数,如果对于所有的i都不能整除,那这个n就是素数。

3.对于上述方法,其实i的上限可以缩减到sqrt(n),有兴趣可以自行查阅资料

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梵咒
2018-07-20 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:62.4万
展开全部

遍历一遍 2到这个数本身有没有因子,

int f=0;
for(i=2;i<m;i++)
{
    if(m%i==0)//存在因子被整除
    {
        f=1;
        break;
    }
}
if(f==0)
printf("是素数");
else
printf("不是素数");

可以优化一下 for(i=2;i<=m/2;i++)

到自身的一半还没有因子的话,后面的一半肯定也没有因子的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南城旧梦947
2018-06-26 · TA获得超过1197个赞
知道小有建树答主
回答量:674
采纳率:72%
帮助的人:155万
展开全部
1,首先了解素数的定义,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。2,以下是C语言程序。 #include "stdio.h" int main() { int n,flag=1,i; scanf("%d",&n);//输入一个数n,判断它是否是素数。 for(i=2;i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
UUAiL1Y1
2018-06-28 · TA获得超过451个赞
知道小有建树答主
回答量:407
采纳率:66%
帮助的人:91.3万
展开全部
思想:素数,一个大于1的自然数除了1和自身不能被其他数整除。程序实现方法:输入一个数N,用1至N的数遍历整除,看除了1和N是否有其他整除数.
void main()
{
int N,i;
int flag = 0;
printf("输入一个大于1的整数:");
scanf("%d",&N);
for(i=1;i<=N,i++)
{
if(((N%i)==0)&&(i != 1)&&(i != N))
{ flag++; } //在N内遍历整除,当遇到除了1和它自身能被整除的,fla
g就加1,flag表明N的整除数个数,当flag为0,说明N是素数。

}
if(flag == 0) printf("N是素数");
else printf("N不是素数");
return ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式