#include<stdio.h>
int main()
{
int i, j,sum = 0;
for (i = 2; i <= 1000; i++)
{
for (j = 1; j <= i/2; j++)
{
if (i % j == 0)
{
sum = sum + j;
}
}
if (i == sum)
{
printf("%d\n", i);
}
}
return 0;
}
这个程序为什么不能运行?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 快乐鹦鹉 2021-08-01 11:57关注
第一次循环开始时,需要将sum值默认为0
另外你这个循环方法是求素数的,只判断到整数的一半,在这里是不够的#include<stdio.h> int main() { int i, j,sum = 0; for (i = 2; i <= 1000; i++) { sum = 0; for (j = 1; j <i; j++) { if (i % j == 0) { sum = sum + j; } } if (i == sum) { printf("%d\n", i); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 3
悬赏问题
- ¥15 hexo+github部署博客
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
- ¥100 H5网页如何调用微信扫一扫功能?