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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Basic Level) 1008 数组元素循环右移问题 (20 分)
下一篇:PAT (Basic Level)1005 继续(3n+1)猜想 (25 分)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月14日 19时51分34秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

C++_类和对象_对象特性_构造函数调用规则---C++语言工作笔记043 2019-04-26
C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044 2019-04-26
AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237 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
AndroidStudio_android实现双击_3击_监听实现---Android原生开发工作笔记240 2019-04-26
C++_类和对象_对象特性_初始化列表---C++语言工作笔记045 2019-04-26
C++_类和对象_对象特性_静态成员函数---C++语言工作笔记047 2019-04-26
AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119 2019-04-26
AndroidStudio安卓原生开发_UI高级_DrawerLayout_侧滑菜单控件---Android原生开发工作笔记120 2019-04-26
AndroidStudio安卓原生开发_UI高级_Shape的使用_虚线_直线_矩形_渐变_径向渐变_线性渐变_扫描渐变---Android原生开发工作笔记122 2019-04-26
AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124 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