|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 liyifeng295641 于 2024-1-3 16:06 编辑
1. 求 10000 以内的素数个数。
我写的:
- #include <stdio.h>
- int main(){
- int i,flag;
- for(i = 2; i < 10000; i++){
- for(int j = 2; j <= i / 2; j++){
- if(i % j == 0){
- break;
- }else{
- flag = 1;
- }
- }
- if(flag == 1){
- printf("%d",i);
- }
- }
- return 0;
- }
复制代码
你的代码基本上是正确的,但有一个小错误。在内层循环中,你需要判断除数是否能够整除i,如果可以,则说明i不是素数,应该将flag设置为0并跳出循环。否则,flag应该保持为1。最后,你应该在外层循环结束后,打印flag为1的个数,即为10000以内的素数个数。
下面是修改后的代码:
- #include <stdio.h>
- int main(){
- int i,flag,count = 0;
-
- for(i = 2; i < 10000; i++){
- flag = 1; // 假设i是素数
-
- // 判断i是否是素数
- for(int j = 2; j < i; j++){
- if(i % j == 0){ // 能整除说明不是素数
- flag = 0;
- break;
- }
- }
-
- if(flag == 1){
- count++; // 素数个数加1
- }
- }
-
- printf("10000以内的素数个数是:%d\n", count);
-
- return 0;
- }
复制代码
运行结果为:
希望对你有帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|