学习工控知识,就来工控小新
农历十一月十七日 2023/12/ 29
往期推荐
2023年12月27日,每日花费一分钟练习C语言
2023年12月28日,每日花费一分钟练习C语言
每日一练
/ Daily Exercises
题目:统计所有小于非负整数n的质数的数量
题目分析
题目要求我们统计所有小于非负整数n的质数的数量。质数是指只能被1和自身整除的正整数,例如2,3,5,7等。我们可以用一个循环来遍历从2到n-1的所有整数,对每个整数判断是否是质数,如果是,就累加一个计数器。判断一个整数是否是质数的方法有多种,最简单的一种是用一个内层循环遍历从2到该整数的平方根的所有整数,看是否有能够整除该整数的因子,如果有,就说明该整数不是质数,否则就是质数。这种方法的时间复杂度是O(n*sqrt(n)),空间复杂度是O(1)。
程序展示
根据上述的分析,我们可以用以下的C语言程序来实现题目的要求。该程序在VC6.0的环境下运行正常,输入一个非负整数n,输出小于n的质数的数量。
#include
#include
// 判断一个整数是否是质数的函数
int is_prime(int x)
{
int i;
// 如果x小于2,返回0,表示不是质数
if (x < 2)
return 0;
// 如果x等于2,返回1,表示是质数
if (x == 2)
return 1;
// 如果x是偶数,返回0,表示不是质数
if (x % 2 == 0)
return 0;
// 从3到x的平方根遍历所有奇数,看是否有能够整除x的因子
for (i = 3; i <= sqrt(x); i += 2)
{
// 如果有,返回0,表示不是质数
if (x % i == 0)
return 0;
}
// 如果没有,返回1,表示是质数
return 1;
}
// 主函数
int main()
{
int n, i, count = 0;
// 输入一个非负整数n
printf("请输入一个非负整数n:\n");
scanf("%d", &n);
// 遍历从2到n-1的所有整数,判断是否是质数,如果是,累加计数器
for (i = 2; i < n; i++)
{
if (is_prime(i))
count++;
}
// 输出小于n的质数的数量
printf("小于%d的质数的数量是%d\n", n, count);
return 0;
}
程序测试
为了验证我们的程序是否正确,我们可以用一些测试用例来检验。
编译程序,输入一个非负整数:10。
经过计算,得出小于10的质数是数量是4个
源代码获取
#软件下载通道# 我用夸克网盘分享了「20231229」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接: (链接和提取码建议复制粘贴,手动输入容易出现错误) | |
#支持一下# 分享整理,测试发布不易 如果您方便的话可以帮忙点一下↓↓ 谢谢大家! |
下期题目
题目:
克隆图
给你无向连通(
https://baike.baidu.com/item/连通图/6460995?fr=aladdin)图中一个节点的引用,请你返回该图的深拷贝(
https://baike.baidu.com/item/深拷贝/22785317?fr=aladdin) (克)。图中的每个节点都包含它的值 val (int) 和其邻居的列
表 (list[Node])。
class Node f
public int val;
public List
neighbors; }
点赞加关注,学习不迷路
工控小新
学习工控知识就来工控小新,为你提供工控笔记知识:EPLAN电气绘图 | TIA博图基础 | CAD | C语言教学 | 单片机基础 | 三菱PLC ... 每日持续更新中
本文暂时没有评论,来添加一个吧(●'◡'●)