编写一个函数int prime( int a ),判断参数是否为素数。函数有一个形参a,当a为素数时,返回1,反之,返回
3个回答
展开全部
int prime(int a)
{
int i;
for(i=2;i<a/2+1;i++)
{
if(a/i*i==a)return 0;
}
return 1;
}
----------------------------------------------------------------------
解释:c语言中,整型除以整型后会自动取整的
以1为起始,让参数除以从2开始直到自身的一半为止
如果出现整除,那么 a 除以 i 之后得到的整数再乘以 i 就会的到a自身,那么就说明a不是素数,直接返回0,函数结束
如果整个for循环结束了都不出现上述情况,则说明从2开始直到a自身的一半(这个‘一半’未必是整数,所以加1取整)为止都不存在a的约数,那么就说明a是素数,返回1
算法思路就是这样,至于代码我没有运行调试,仅供参考
{
int i;
for(i=2;i<a/2+1;i++)
{
if(a/i*i==a)return 0;
}
return 1;
}
----------------------------------------------------------------------
解释:c语言中,整型除以整型后会自动取整的
以1为起始,让参数除以从2开始直到自身的一半为止
如果出现整除,那么 a 除以 i 之后得到的整数再乘以 i 就会的到a自身,那么就说明a不是素数,直接返回0,函数结束
如果整个for循环结束了都不出现上述情况,则说明从2开始直到a自身的一半(这个‘一半’未必是整数,所以加1取整)为止都不存在a的约数,那么就说明a是素数,返回1
算法思路就是这样,至于代码我没有运行调试,仅供参考
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdlib.h>
#include<stdio.h>
int prime(int m)
{
int i;
int n;
int k=0;
int s=0;
int judge=0;
for(n=m;n<=m&&n>=1;n--)
for(i=2;i<m/2;i++);
if(n%i==0)judge=1;
if(judge!=1)
k=k+1;
while(k<=10)
s=s+n;
return s;
}
main()
{
int m;
int s;
printf("请输入测试值m:");
scanf("%d",&m);
s=prime(m);
printf("%d",s);
}
#include<stdio.h>
int prime(int m)
{
int i;
int n;
int k=0;
int s=0;
int judge=0;
for(n=m;n<=m&&n>=1;n--)
for(i=2;i<m/2;i++);
if(n%i==0)judge=1;
if(judge!=1)
k=k+1;
while(k<=10)
s=s+n;
return s;
}
main()
{
int m;
int s;
printf("请输入测试值m:");
scanf("%d",&m);
s=prime(m);
printf("%d",s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int prime( int a )
{
int i ;
for(i = 2 ; i < a / 2 ; i++ )
if(a % i == 0 ) return 0 ;
return 1 ;
}
{
int i ;
for(i = 2 ; i < a / 2 ; i++ )
if(a % i == 0 ) return 0 ;
return 1 ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询