写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息

快,在线C语言... 快,在线 C语言 展开
 我来答
帐号已注销
2020-12-31 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

先建立一个初始的素数表,例如:100以内的素数数组,用来快速判断是否是素数对于超过100的素数,算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数。

#include <stdio.h>

#include <math.h>

//判断是否为素数的函数

int isPrime(int n)

{

int i=2;

while(i<=(int)sqrt(n))

{

if(n%i == 0)

return 0;  //不是素数,直接返回0

else

i++;

}

return 1;

}

int main()

{

int n;

printf("输入一个正整数: ");

scanf("%d",&n);

if(isPrime(n))

printf("%d is a prime number\n",n);

else

printf("%d is not a prime number\n",n);

return 0;

}

扩展资料;

首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。

命题 1 对于B=36N+1 形数而言。

若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,

则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。

若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,

则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。

参考资料来源:百度百科-质数

钞波母芳华
2020-11-13 · TA获得超过1185个赞
知道小有建树答主
回答量:1785
采纳率:88%
帮助的人:8.3万
展开全部
先建立一个初始的
素数
表,例如:100以内的素数数组,用来快速判断是否是素数
对于超过100的素数,
算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
和玮兆寻绿
2020-04-29 · TA获得超过1096个赞
知道小有建树答主
回答量:1724
采纳率:87%
帮助的人:7.9万
展开全部
int
isprime(int
n)
//
判断n是否为素数
{

if(n<2)
return
0;
//
小于2的肯定是合数

int
i;

for(i=2;i*i<=n;i++)
if(n%i==0)
//
如果找到一个可整除它的数,那么它就是合数了
return
0;

return
1;
}
int
main()
{

int
x;

scanf("%d",&x);

if(isprime(x))
printf("%d
is
a
prime\n",x);

else printf("%d
is
not
prime\n",x);

return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
禹运傅坚秉
2019-12-06 · TA获得超过3739个赞
知道大有可为答主
回答量:3100
采纳率:33%
帮助的人:206万
展开全部

#include
<stdio.h>
_Bool
sspd(unsigned
long
long
i);
int
main(void)
{
unsigned
long
long
x;
printf(" 
请输入
1
个正整数;");
while(scanf("%llu",&x)==1
&&
x)
{
if(sspd(x)
&&
x!=1
||
x==2)
printf(" 
%llu
是素数\n\n",x);
else
printf(" 
%llu
不是素数\n\n",x);
printf(" 
请输入
1
个正整数;");
}
return
0;
}
_Bool
sspd(unsigned
long
long
srs)
//必须:srs>2
{
unsigned
long
long
div;
for(div=2;div*div<srs+1;div++)
if(!(srs%div))
return
0;
return
1;     
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贫民馆的好物
2019-01-24 · TA获得超过3783个赞
知道大有可为答主
回答量:3145
采纳率:32%
帮助的人:216万
展开全部
#include<iostream>
using
namespace
std;
bool
isSushu(int);//检查是否是素数
void
main()
{
int
a;
cout<<"请输入数字:";
cin>>a;
if
(isSushu(a))
{
cout<<a<<"是一个素数"<<endl;
}
else
{
cout<<a<<"不是一个素数"<<endl;
}
}
bool
isSushu(int
a)
{
if
(a==2)
{
return
true;
}
for(int
i=2;i<a;i++)
{
if
(a%i==0)
{
return
false;
}
}
return
true;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式