当前位置:首页 » 编程语言 » c语言求素数用函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求素数用函数

发布时间: 2023-02-26 08:46:42

Ⅰ 用c语言如何判断素数

按照如下步骤即可用C语言判断素数:

1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。

Ⅱ 用C语言如何判断素数

素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

思路1、判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

思路2、判断方法还可以简化。

m 不必被2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果 m 不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。


原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m。

例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可。


两种思路的代码请看解析。

拓展资料:

素数(prime number)又称质数,有无限个。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

网络——C语言

Ⅲ 求素数(C语言)用函数

#include<stdio.h>

intsushu(intz);/*函数声明最好放在外面,放到文件前端*/

voidmain()
{
intb,a;
printf("enteradate: ");
scanf("%d",&b);
a=sushu(b);
if(a==0||b==0)
printf("no ");
else
printf("yes ");
}
intsushu(intz)
{
inti,j;/*i和返回值要分开,i要做循环标尺的*/
for(i=2;i<z;i++)
{
if(z%i==0)
{
j=0;
break;/*一旦发现不是素数,跳出for循环*/
}
else
j=1;/*如果用i,就是个死循环,如果是素数,每次你把i=1后for循环一直继续*/
}
returnj;
}

Ⅳ c语言 求素数,要求调用函数

楼主的代码看的真是让我蛋疼,全局太多、函数定义和声明参数都没有类型、判断是否素数居然返回double、printf用法错误...各种我就不说了,给你修改了一下,编译运行成功,代码如下:

#include<stdio.h>
bool prime(int x);
int main()
{
int m,n,count=0,i,sum=0;
scanf("%d",&m);
scanf("%d",&n);
for(i=m;i<=n;i++){
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d ",count,sum);
return 0;
}
bool prime(int x)
{
int a;
bool result = false;
for(a=2;a*a<=x;a++)
{
if(x%a==0)
break;
}
if(a*a>x)
result = true;
return result;
}

Ⅳ c语言求素数

楼上说的不对,其实不是什么if-else语句的问题,本来就是应该for循环内运行if(a%i==0)语句的,return1;语句是在for循环外的,表示没有找到a的约数时才return1;也即表示a为素数。这里没什么问题的,
问题存在于你的while语法:你写的while(x<=100);注意你写的while后面有个分号,其实这就已经构成一个while循环了。循环内容就是“;”表示什么也不做,而循环条件是1<=100为真的,程序运行到这里就进入死循环。。。从而出现你所说的“程序没有错,可是运行之后除了‘1到100之间的所有素数是:’这行字之外啥也没有,”
只要删除while(x<=100);后面的分号就可以了,即
#include<stdio.h>
intprime(int);
main()
{
intx;
printf("1到100之间的所有素数是:\n");
x=1;//这里最好是从2开始的,否则会出现1也是素数的结果。或者
//你在intprime(int);函数中单独判断一下参数为1的特殊情
//形。
while(x<=100)//这里不要分号。但do-while语句后面是有分号的
{
if(prime(x))
printf("%d",x);
x=x+1;
}
}
intprime(inta)
{
inti;
for(i=2;i<=a/2;i++)
if(a%i==0)
return0;
return1;
}

Ⅵ c语言函数求素数


#include<stdio.h>
#include<math.h>
void main()
{
int input_x,result;

printf("Please enter a INT number: ");
scanf("%d",&input_x);

result = prime_number(input_x);

printf("%d, ",input_x);
if(result)
{
printf("It is a prime number");
}
else
{
printf("It is 'not' a prime number");
}
}

prime_number(num)
{
int a,i,temp;

temp = 0;
a=sqrt(num);
for(i=2;i<=a;i++)
{

if(num%i==0)
{
temp = 1;
break;
}
}

if(temp == 0)
return 1;

return 0;
}

Ⅶ 用c语言编程序,用函数求素数,调用函数

#include<stdio.h>
#include<math.h>
//判断是否为素数的函数
intisPrime(intn)
{
inti=2;
while(i<=(int)sqrt(n))
{
if(n%i==0)
return0;//不是素数,直接返回0
else
i++;
}
return1;
}
intmain()
{
intn,i;
printf("输入一个正整数:");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
if(isPrime(i))//调用函数,如果该数为素数,则输出
printf("%d",i);
}
printf(" ");
return0;
}

示例运行结果:

输入一个正整数: 50

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

Ⅷ 用C语言写一个调用函数,求出一个范围内的素数,范围自己输入

#include<stdio.h>
#include<math.h>
intprime(inta,intb)//求出整数a-b范围内的所有素数
{
inti=2,j,n;
for(j=a;j<=b;j++)
{
n=sqrt(j)+1;//j的平方数+1
i=2;
while(i<n)
{
if(j%i==0) //整除,退出循环
break;
i++;
}
if(i==n)//非整除退出循环,i肯定等于n
printf("%d",j); //j是素数,输出
}
}
intmain()
{
inta,b;
scanf("%d%d",&a,&b);//输入整数范围a-b
prime(a,b);
return0;
}