萌新请教

小未在努力 2019-10-04 01:10:24
想问一下哪里有问题,输出素数。。。。
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2019-10-05
  • 打赏
  • 举报
回复
引用 3 楼 ww2000315 的回复:
[quote=引用 2 楼 qybao的回复:]for (i=1; i<=k; i++)改成for (i=2; i<=(int)k; i++) //从2开始,否则任何都能整除1,就break了 另外,k是double类,最后转成int来比较
为什么还是输不出来啊[/quote]

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
	for (int i = 1; i <= 100; i++) {
		int h = sqrt(i);
		int isNot = i == 1 ? 1 : 0;//isNot为0时i就是素数,1的时候直接判断不是素数
		for (int j = 2; j <= h; j++) {
			if (i % j == 0) {
				isNot = 1;
			}
		}
		if (isNot == 0) {
			cout << i << endl;
		}
	}
	return 0;
}
刚在问答区写了个C++版本的,你可以参考一下判断方式,另外你换行之后没有把m调回来,下一次无法换行
小未在努力 2019-10-05
  • 打赏
  • 举报
回复
引用 2 楼 qybao的回复:
for (i=1; i<=k; i++)改成for (i=2; i<=(int)k; i++) //从2开始,否则任何都能整除1,就break了
另外,k是double类,最后转成int来比较
为什么还是输不出来啊
qybao 2019-10-04
  • 打赏
  • 举报
回复
for (i=1; i<=k; i++)改成for (i=2; i<=(int)k; i++) //从2开始,否则任何都能整除1,就break了
另外,k是double类,最后转成int来比较
「已注销」 2019-10-04
  • 打赏
  • 举报
回复
if(j%i==0)break;,i等于1的时候始终满足,也就是每次进入for循环的第一次就跳出了该循环,那你岂不是内部的for循环就废了

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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