本人刚学没多久,只会简单的选择和循环,麻烦有人帮我找一下错误,谢谢!
1条回答 默认 最新
- 谢玄. 2022-10-29 01:57关注
我的这篇文章可能对你有帮助
https://blog.csdn.net/apple_53792700/article/details/127575792?spm=1001.2014.3001.5502
#我认真的读了你的代码,你的代码逻辑大概是:
- 获取 m
- 从m开始,往后遍历数
- 当 m 可以被 [2,$\sqrt{m}$] 的树整除时 q 标记成 1
- 如果 q 是 1 就让
sum += m
并且x ++
我发现以下问题:
- q =1 以后,你没有把 q 变回 0 导致找到一个素数会直接加令sum= m0+m1+....+ m4
- 代码格式混乱,命名没有规则。导致 容易出现低级错误,代码阅读困难。
我对你的代码进行了改进
#include <stdio.h> #include <math.h> bool IsPrimeNumber( unsigned int x ); int main(){ unsigned int m = 1; char getNum = 0; unsigned int output = 0; scanf("%ud",&m); do{ m++; if( IsPrimeNumber(m) ){ output += m; getNum++; } }while( getNum!= 5 ); printf("%u",output); } bool IsPrimeNumber( unsigned int x ){ // 遍历除 1 以外所有比自己小的整数 int sq = sqrt(x); for( int i = 2 ; i <= sq; i++ ){ if( x%i == 0 ){ // 如果 x 可以被 i 整除 那么就返回的 假 代表这个数不是素数 return false; } else { /* 如果不能被 i 整除就继续遍历 */ } } // 如果除 1 以外所有比自己小的整数都不能被整除,那么他就是素数 if( x <= 1 ){ return false; } else { return true; } }
$$有问题可以追问,望采纳$$
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥15 WPF动态创建页面内容
- ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
- ¥15 SQL数据库操作问题
- ¥100 关于lm339比较电路出现的问题
- ¥15 Matlab安装yalmip和cplex功能安装失败
- ¥15 加装宝马安卓中控改变开机画面
- ¥15 STK安装问题问问大家,这种情况应该怎么办
- ¥15 关于罗技鼠标宏lua文件的问题
- ¥15 halcon ocr mlp 识别问题
- ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线