第三周作业2

阅读下面程序,请回答如下问题:

问题1:这个程序要找的是符合什么条件的数?

问题2:这样的数存在么?符合这一条件的最小的数是什么?

问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4.0G Hz,内存和硬盘等资源充足)。

问题4:在多核电脑上如何提高这一程序的运行效率?

using System;

using System.Collections.Generic;

using System.Text;

namespace FindTheNumber

{
    class Program
    {
        static void Main(string[] args)
        {
            int[] rg =
            {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
 20,21,22,23,24,25,26,27,28,29,30,31};
            for (Int64 i = 1; i < Int64.MaxValue; i++)
            {
                int hit = 0;
                int hit1 = -1;
                int hit2 = -1;
                for (int j = 0; (j < rg.Length) && (hit <= 2); j++)
                {
                    if ((i % rg[j]) != 0)
                    {
                        hit++;
                        if (hit == 1)
                        {
                            hit1 = j;
                        }
                        else if (hit == 2)
                        {
                            hit2 = j;
                        }
                        else
                            break;
                    }

                }
                if ((hit == 2) && (hit1 + 1 == hit2))
                {
                    Console.WriteLine("found {0}", i);
                }
            }
        }
    }
}

个人理解:首先定义整形数组rg【2~31】,目标数除以数组rg中顺序连续两个元素余数不等于0,除以其他元素余数等于0。这样的数应该存在,但是很大,查询资料未果,但是可以预计直接运行此程序求得的话恐怕即使只是第一个数也需要很长时间。在电脑上运行这一程序,电脑cpu频率4.0g,每秒运算4*2^30次,第一个结果应该是(30-2)个数的最小公倍数,应该很大,程序的计算量也很大,预计计算出要超过120min。在多核电脑上优化程序,调用多个核心同时进行遍历,可以提高运行效率。

时间: 2024-10-03 21:41:28

第三周作业2的相关文章

马哥2016全新Linux+Python高端运维班第三周作业作答

                    马哥2016全新Linux+Python高端运维班第三周作业                                           1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | awk '{print $1 $NF}'| uniq -d     [[email protected] ~]# who     yicx     :0  

解题报告——-2018级2016第二学期第三周作业

解题报告——2018级2016第二学期第三周作业 A:[NOIP2002P]过河卒 题目: 描述 如图,A 点有一个过河卒,需要走到目标 B   点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例 如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点. 棋盘用坐标表示,A 点(0,0).B 点(n,m)(n,m 为不超过 20  的整数,并由键盘输入)

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

第三周作业(一)VS安装及单元测试练习

第三周作业(一) 需求:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂,没有书的同学可以向班内助教同学借阅. 1.visual studio 开发平台安装 事实上我对Visual Studio了解不多,只知道支持的编程语言多,用的人也挺多,功能强大.至于到底好在哪里,还是要用上一阵自己体验一下才知道.听同学说VS2015有些卡,所以这里我选择了VS2013. 如图,具体版

2017-2018-2《网络攻防实践》第三周作业

第三周作业: 第一节:第三章学习: 1.1网络信息收集 网络信息收集的目的是尽可能了解目标,这包括目标的漏洞IP地址范围,外部网络阔朴结构等. 1.2网络信息收集方法 网络踩点: Web搜索与挖掘(Google Hacking,百度,雅虎) IP与DNS查询 1.3 网络拓扑侦察 tracert也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径.本文主要探讨了tracert命令的各个功能 1.3 网络扫描 网络踩点相

【作业】第三周作业

从第三周开始,作业不再是是老师布置,因为这个时候,你们基本上都开始做项目了, 于是, 作业的来源: 1.书上的课后作业 2.课件上面的随堂讨论或作业 3.你瞎想到的问题 4.[推荐]在实际项目中,结合软件工程知识点,提出作业 最为推荐第四种方式,比如, 关于白盒测试的知识点,结合你的项目实践,就可以得出如下题目: 白盒测试有几种,请结合你的代码片段,一一举例说明,并给出测试用例. 作业的评分,还是10/5/0,三种,请参见: http://www.cnblogs.com/jerry1979/p/

软件工程_东师站_第三周作业

身体是革命的本钱,这话一点不假,白天昏沉,晚上发烧,一直不好,啥都干不动.   代码行数 博客字数 知识点 第一周 400 430 见我博客软件工程——师大站1 第二周 0 5200 见我博客软件工程_东师站_课堂笔记 第三周 0 63 站立会议.单元测试

马哥2016全新Linux+Python高端运维班第三周作业

本周作业内容: 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. # who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息. # id $(who | sort -t' ' -k3,4 | tail -1 | cut -d' ' -f1) 3.取出当前系统上被用户当作其默认shell的最多的那个shell. # cut -d: -f7 /etc/passwd | sort | uniq -c | sort

软件工程第三周作业:微软必应词典案例分析

0x01 :微软必应词典案例分析 0x0104 :微软必应词典功能性BUG说明       0x010404 : BUG – 1 – 模块功能未实现 运行环境或平台 iOS 9.0.1 必应词典软件版本 版本3.5,版权所有@2014 Microsoft 软件测试BUG特征 [优先级1]应用程序模块功能未实现,包含整个模块不能正常运行 重现步骤 1. 打开必应词典软件进入设置中,选择跨软件查词设置,设置为打开和一直运行 2. 按照使用说明所说随意打开某一App(这里选择提醒事项) 3. 按使用说

第三周作业 --- 阅读程序

这周老师布置了一个阅读程序的作业. 问题如下: 阅读下面程序,请回答如下问题: 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4.0G Hz,内存和硬盘等资源充足). 问题4:在多核电脑上如何提高这一程序的运行效率? using System; using System.Collections.Generic; using System.Text