PAT (Basic Level)1007 素数对猜想 (20 分)
发布日期:2021-05-04 01:05:22
浏览次数:29
分类:技术文章
本文共 1276 字,大约阅读时间需要 4 分钟。
1.题目描述—
2.思路解析
分为两部分考虑:
1、判断数n是否为素数:如果从2到根号n,n能够被其中任意⼀个值整除,则n不是素数;反之,则n为素数。 2、判断相邻两个素数是否为素数对:将前一个素数保存起来,用当前素数减去前一个素数,如果为二,则素数对个数加1。3.代码
using System;class Program { static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); int temp = 3; // temp用于存放上一个的素数 int count = 0; // count用于记录素数对个数 bool flag = true; // flag记录当前元素是否为素数 if (n >= 5) { for (int i = 5; i <= n; i++) { flag = true; // 判断当前元素i是不是素数 for (int j = 2; j*j <= i; j++) { // 如果不是素数,则跳出当前循环 if (i % j == 0) { flag = false; break; } } if (flag) { if (i - temp == 2) count++; temp = i; } } } Console.Write(count); Console.ReadKey(); } }
4.总结
1、直接用运算符运算要比调用库函数效率高。例如本题中判断素数用j * j <= i的效率要高于j <= Math.Pow(i,0.5),要注意这个细节,正是这个细节,有一个测试就超时了。
2、能不申请新变量尽量不要申请,降低空间复杂度。转载地址:https://blog.csdn.net/weixin_45027619/article/details/116208211 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月14日 19时51分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C++_类和对象_对象特性_构造函数调用规则---C++语言工作笔记043
2019-04-26
C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044
2019-04-26
AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238
2019-04-26
弹框没反应使用Looper解决_the caller should invoke Looper.prepare() and Looper.loop()---Android原生开发工作笔记239
2019-04-26
Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067
2019-04-26
C++_类和对象_对象特性_初始化列表---C++语言工作笔记045
2019-04-26
C++_类和对象_对象特性_静态成员函数---C++语言工作笔记047
2019-04-26
kivy制作安卓APP--简单音乐播放器
2019-04-26
十年(程序员改编)
2019-04-26
c++排序算法个人总结
2019-04-26
看完你就知道的乐观锁和悲观锁
2019-04-26
Docker入门
2019-04-26
Spring Aop 扫盲
2019-04-26
看完这篇操作系统,和面试官扯皮就没问题了
2019-04-26