《c语言入门题目19》判断一个数是不是质数(素数)-创新互联
前言:(内容仅供分享和参考):
成都创新互联专注于霸州企业网站建设,响应式网站设计,商城系统网站开发。霸州网站建设公司,为霸州等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务什么是质数: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。========================================================================
题目:编写编程,判断在指定范围内的数是不是质数(素数)
代码:(用到的软件:VisualStudio)
(用Dev-C++的把scanf_s换成scanf就行了)
1.如何判断是不是素数
这里用到的判断方法是一个个去除,比如让5分别处以1,2,3,4,5,如果该数能被该数范围内的数求余为0,说明该数有能被除了1和它自身外的其他自然数整除,所以不是素数。
int prime(int n)
{
if (n< 2) return 0;//根据质数定义,排除特殊情况
int flag = 1;//定下一个标识
for (int i = 2; i< n; i++)
{
if (n % i == 0)
//如果能被取余为0,这输出0,直接跳过,因为该数已经不是质数了,比如4,4%2=0;
//所以可以直接break跳过这一个数的判断,直接进入下一个
//如果都判断完了,都没有取余到0,说明该数只能被1和他本身整除,是质数
//还记得一开始下的标识是1吗,如果没有进入到if语句的执行条件,那么最后的返还结果就是1
{
flag = 0;
break;
}
}
return flag;
}
如果能被取余为0,这输出0,直接跳过,因为该数已经不是质数了,比如4,4%2=0;
所以可以直接break跳过这一个数的判断,直接进入下一个。如果都判断完了,都没有取余到0,说明该数只能被1和他本身整除,是质数(当然一开始要排除特殊情况,比如负数和1)
还记得一开始下的标识是1吗,如果没有进入到if语句的执行条件,那么最后的返还结果就是1,
输入到print_prime函数的if中判断为真(因为是1,假就是0),接着输出打印这一质数即可。
2.用指针去修改内存,达到一个可以让用户在输入窗口修改范围的效果。
(这样就不用老是在编译器里改了)
void print_prime(int* a, int* b)//定义指针a,b方便修改内存变量,到达可供外部输入的效果
{
printf("请输入要判断是否是质数的范围,用空格隔开两个数:");//提示语
scanf_s("%d%d", a, b);
for (int i = *a; i<= *b; i++)//开始循环
{
if (prime(i))//应用判断质数函数
{
printf("%d是质数。\n", i);//将范围内的质数答应出来
}
}
}
全部代码:
#includeint prime(int n)
{
if (n< 2) return 0;
int flag = 1;
for (int i = 2; i< n; i++)
{
if (n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
void print_prime(int* a, int* b)
{
printf("请输入要判断是否是质数的范围,用空格隔开两个数:");
scanf_s("%d%d", a, b);
for (int i = *a; i<= *b; i++)
{
if (prime(i))
{
printf("%d是质数。\n", i);
}
}
}
int main()
{
int a=0, b=0;
print_prime(&a,&b);
return 0;
}
========================================================================
结果图:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文题目:《c语言入门题目19》判断一个数是不是质数(素数)-创新互联
当前网址:http://abwzjs.com/article/jiedj.html