|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- int count = 2; // 已知2和3是素数
- int i, j;
- _Bool flag = 1;
- for (i = 5; i < 10000; i++)
- {
- for (j = 2; j < i / 2; j++)
- {
- if (i % j == 0)
- {
- flag = 0;
- break;
- }
- }
- if (flag)
- {
- count++;
- }
- else
- {
- flag = 1;
- }
- }
- printf("10000以内共有%d个素数!\n", count);
- return 0;
- }
复制代码
看不大明白 求代码解析
家里网络出问题了,我用手机热点上网回答你的问题,若有不全的,晚上网络恢复了再补充
- #include <stdio.h>
- int main()
- {
- int count = 2; // 已知2和3是素数
- int i, j;
- int flag = 1; // 最好不要用 Bool,因为很多编译软件不支持,若一定要用,则需要自己在头部定义
- for (i = 5; i < 10000; i++) // 求 10000 以内的素数
- {
- for (j = 2; j < i / 2; j++) // 因为 i 的平方根乘以 i 的平方根乘以就是 i,
- // 而 i 的平方根小于 i / 2,故计算到 i / 2 即可
- {
- if (i % j == 0) // 取余数,能整除其余数就为0,它就不是素数
- {
- flag = 0;
- break; // 既然不是素数,也就没有必要计算下去了,中断
- }
- }
- if (flag) // 一轮循环下来,flag 没有被置 0,它就是素数
- {
- count++; // 于是,计数器加1
- }
- else
- {
- flag = 1;
- }
- }
- printf("10000以内共有%d个素数!\n", count); // 对所求的结果进行输出
- return 0;
- }
复制代码
|
|