解题思路:1.当时竟然还想排除输入一以内的,然后怕过不去就没输入(zz行为)。
2.首先是了解质数(素数)的性质,即只能被一和自身整除(*扩展如果还能被其他数整除,那叫合数)。
3.初步思路打算用两个for循环,大循环是给数(自己输入的范围中的每个数),其次数另一for循环直接判断是否为素数。
4.然后是解决如何判断素数,这里我也没啥可厉害的法子,然后就定义了一个标志位,并定义其初始值为一(要是定义0的话要拐个弯),在判断素数的过 程中(俺用的是求余),有余数即进入if语句中并定义flag=0(意思是这个数不是素数了),也正是因为判断有结果了,所以应该用break跳出判断,节省时间(你说有啥浪费时间的,是吧,哈哈) 。
/--
注意事项:1.标志位记得要重置,不然只会出2。
2.printf要放在最外面的循环(就我一个人犯这个错误了,那就当我没说)。
/--
参考代码:
#include int main(void) { int data,i,x,flag=1; scanf("%d",&data); for(x=2;x<=data;x++) { for(i=2;i<x;i++) { if((x%i)==0)//如果能除尽,那说明为合数 { flag=0; break; } } if(flag==1) { printf("%d\n",x); } flag=1; } return 0; }
0.0分
21 人评分
为什么我的结果是对的,提交后是零分啊? #include<stdio.h> int main() { int n, N; scanf("%d", &N); int i; for (n = 2; n <= N; n++) { for (i = 2; i < N; i++) { if (n % i == 0) { break; } if (n % i != 0) { printf("%d\n", n); break; } } } return 0; }
改进了缩进,还是看不懂 #include int main(void) { int data,i,x,flag=1; scanf("%d",&data); for(x=2;x<=data;x++){ for(i=2;i<x;i++){ if((x%i)==0){//如果能除尽,那说明为合数 flag=0; break; } } if(flag==1){ printf("%d\n",x); } flag=1; } return 0; }
为什么第二个if语句不在第二个for循环里面包括着呀?
程序垃圾 2022-07-29 17:01:17 |
第二个for循环主要是用来判断是否能被除尽,能flag=0,如果放在第二个for循环里,flag=1,一直满足条件(初值已经定义了flag=1),就会一直输出判断的数。
int judge(int m) { for (int j = 2; j * j <= m; j++) { if (m % j == 0) { return 0; } } return 1; } int main() { int n; scanf_s("%d", &n); for (int m = 1; m < n; m++) { if (judge(m) == 1) { printf("%d\n", m); } } return 0; }
int main() { int N, a = 0; scanf("%d", &N); for (int i = 2; i <= N; i++) { for (int j = 1; j <= i; j++) { if (i%j == 0)a++; } if (a == 2)printf("%d\n", i); a = 0; } return 0; }
一个特别固执的人 2021-04-17 07:58:47 |
如果a等于2说明只被1和自身整除,然后输出,感觉更方便了,哈哈
卷心菜 2021-04-25 09:03:08 |
牛逼
野王 2021-07-25 14:26:41 |
6
十幺 2021-07-26 22:04:33 |
代码量是少了 但 你这是从2运算到最后一个数 作者的是有能除尽的就跳出 后面的数不再计算 所以作者的运算量更少
十幺 2021-07-26 22:05:47 |
打错了 是从1到最后一个数
kinkin 2021-08-05 13:21:21 |
#include <stdio.h> #include <stdlib.h> int main() { int n,j,sum=0; scanf("%d",&n); for(int i=2;i<=n;i++) { sum=0; for(j=2;j<=i;j++) { if(i%j==0) break; sum++; } if(sum>=i-2) printf("%d ",j); } }
九宫重排 (C++代码)浏览:1410 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
母牛的故事 (C语言代码)浏览:1450 |
1048题解(读入回车问题)浏览:628 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
C语言训练-排序问题<1> (C语言代码)浏览:369 |
小O的乘积 (C++代码)浏览:545 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:607 |
WU-C语言程序设计教程(第三版)课后习题12.5 (C++代码)浏览:1073 |
图形输出 (Java代码)浏览:478 |
归零 2023-11-04 00:25:42 |
没事了,我是zz