判断一个整数是否是素数

paul卢 2015-08-11 10:41:29
下面这是网上的一个判断整数是否是素数的例子,现脑子有些乱
#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k;
printf("请输入一个正整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++) if (m%i==0) break;
if (i>k)
printf("%d 是素数。\n",m);
else
printf("%d 不是素数。\n",m);
return 0;
}
有几个问题:
1.for和后面的if if else 之间的判断逻辑是什么样的?
比如说输入17,总觉得回打印出很多
17不是素数
17不是素数
...
17是素数

2.为什么后面加了return 0;会出错呢?
...全文
398 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2015-08-11
  • 打赏
  • 举报
回复
void main改成int main,或者直接删除return 0这句话 只会输出一次啊,if-else那一部分又不在for里面 for里面的只是这一部分 for(i=2;i<=k;i++) if (m%i==0) break;
假正经的班长 2015-08-11
  • 打赏
  • 举报
回复
引用 2 楼 luyu534 的回复:
第2点我知道了,把 void main() 改为 main()就行了 有人说void main()是错误用法,似乎The C programming language 作者也说不样用不行 但是看到很多例子都是这样的
”把 void main() 改为 main()“ 其实是将返回值按照默认 int 来处理
假正经的班长 2015-08-11
  • 打赏
  • 举报
回复

for(i=2;i<=k;i++)  if (m%i==0) break;
   if (i>k)
       printf("%d 是素数。\n",m);
   else
       printf("%d 不是素数。\n",m);
这段代码 "if (m%i==0) break;" 其实就是for的循环体,而下边那个if else 已经出了for的范围了,具体for的范围你可以了解一下 return 0; 报错 是因为你的main函数无返回值,main也是一个普通函数。一般main 函数 无返回值,或者返回 int,都可以。
paul卢 2015-08-11
  • 打赏
  • 举报
回复
第2点我知道了,把 void main() 改为 main()就行了 有人说void main()是错误用法,似乎The C programming language 作者也说不样用不行 但是看到很多例子都是这样的
赵4老师 2015-08-11
  • 打赏
  • 举报
回复
Finding prime numbers - Kenneth Haugland Different schemas for finding prime numbers explained with code http://www.codeproject.com/Articles/429694/Finding-prime-numbers
paul卢 2015-08-11
  • 打赏
  • 举报
回复
引用 3 楼 cjqpker 的回复:

for(i=2;i<=k;i++)  if (m%i==0) break;
   if (i>k)
       printf("%d 是素数。\n",m);
   else
       printf("%d 不是素数。\n",m);
这段代码 "if (m%i==0) break;" 其实就是for的循环体,而下边那个if else 已经出了for的范围了,具体for的范围你可以了解一下 return 0; 报错 是因为你的main函数无返回值,main也是一个普通函数。一般main 函数 无返回值,或者返回 int,都可以。
能否具体说下,当m%i==0时,程序跳出,怎么会到这里 printf("%d 不是素数。\n",m)
【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)内容概要:本文围绕“基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究”展开,重点介绍了利用小生境粒子群算法对配电网中的有功与无功功率进行协调优化的方法。研究结合Matlab代码实现,旨在降低网络损耗、提升电压质量,并增强配电网运行的经济性与稳定性。文中详细阐述了改进多目标粒子群算法的设计思路,包括引入小生境机制以增强种群多样性、避免早熟收敛,同时构建了综合考虑有功出力调节、无功补偿装置投切及分布式电源协同控制的优化模型。通过在标准测试系统(如IEEE33节点系统)上的仿真验证,展示了该方法在多目标优化中的有效性与实用性。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法应用及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含分布式电源的主动配电网运行优化;②解决多目标环境下有功与无功资源的协同调度问题;③为配电网节能降损、电压调控提供算法支持与仿真验证手段; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注算法参数设置、适应度函数设计及多目标解集的Pareto前沿分析,同时可扩展至不同网络结构与运行场景以加深理解。

33,318

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧