精华内容
下载资源
问答
  • 楼主大三本科在读,职业生涯目标明确,想做一名系统构架师,知道要经过很长时间。但是目前迷茫,不知如何修炼,跪高人指点
  • 本来用自己写的普通素数的方法虽然只用了一个For循环,由于数过大,依然超时了,于是改用了筛法素数,但所有因子和时遇到了不小的问题,不知道怎样去优化,后来经过跟朋友的讨论,勉强写过。   因子和 时间...

           本来用自己写的普通求素数的方法虽然只用了一个For循环,由于数过大,依然超时了,于是改用了筛法求素数,但求所有因子和时遇到了不小的问题,不知道怎样去优化,后来经过跟朋友的讨论,勉强写过大笑

          

    因子和

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
    描述

    题目很简单明了,给你一个数n,判断它是不是素数,如果是素数就输出”Yes”,如果不是素数则输出“No”和它的因子和。例如5,输出“Yes”,6,输出“No  12”.(不包括引号)

    输入
    共有t组测试数据(1<=t<=100000)。
    接下来有t行,每行有一个数n(1<n<=2000000).
    输出
    如果是素数,输出“Yes”,不是的话就输出“No”和它的因子和,中间用空格分开。
    样例输入
    5
    91
    92
    4
    23
    75
    样例输出
    No 112
    No 168
    No 7
    Yes
    No 124

    #include<stdio.h>
    int a[2000005];
    int main()
    {
        a[1]=1;
        for(int i=2;i<2000005;i++)
            {
            if(!a[i])
            for(int j=i+i;j<2000005;j+=i)
                a[j]=1;
            }
    
        int n,m;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%d",&m);
            if(!a[m])
                printf("Yes\n");
            else
            {
               int sum=0;
                for(int i=1;i*i<=m;i++)
                {if(m%i==0)
                {
                    if(i==m/i)
                        sum+=i;
                    else
                        sum+=i+m/i;
                }
    
                }
                printf("No ");
                printf("%d\n",sum);
            }
        }
        return 0;
    }
    

    展开全文
  • 一道c++的算法题目

    2007-11-01 16:09:00
    昨天看到一个求时间的帖子:在C++中,已知从1900年1月1日到某天经过了7865284526秒,请帮我想一想怎样根据这个秒数把具体的日期时间求出(比如:2007年3月5日 10:20:32) 刚把它做出来,准备回复那个人的,结果没想到...

    昨天看到一个求时间的帖子:

    在C++中,已知从1900年1月1日到某天经过了7865284526秒,请帮我想一想怎样根据这个秒数把具体的日期时间求出(比如:2007年3月5日   10:20:32) 

    刚把它做出来,准备回复那个人的,结果没想到他结贴了。下面我把我的算法贴出来!

    #include <iostream>
    using namespace std;
    int months = 0;
    int leftdays = 0;
    int a[] = {334,304,273,243,212,181,151,120,90,59,31,0};
    __int64 seconds = 7865284526;
    int daysToMonth(int sumDays)
    {
     bool flags = true;
     int i = 0;
     while (flags)
     {
      if (sumDays > a[i])
      {
       months = 12 - i;
       leftdays = sumDays - a[i];
       flags = false;
      }
      else
       ++i;
     }
     return months;
    }


    int main()
    {
     long second = 4*365*24*60*60 + 24*60*60;
     int year = seconds/second;
     int years = year*4;
     int left = seconds%second;
     int ssecond = 365*24*60*60;//每年的秒数
     int lyear = left/ssecond;//剩余秒数对应的年数
     int leftsec = left%ssecond;//换成年之后剩余的总秒数
     int leftseconds = leftsec%60;//换算成分钟后剩余的秒数
     int minutes = leftsec/60;//总分钟数
     int leftminites = minutes%60;//剩余的分钟数
     int hours = minutes/60;//总小时数
     int lefthours = hours%24;//换成天剩余的小时数
     int days = hours/24;//总天数
     years += lyear;


    int count = 0;//计算出将不是闰年的也当做闰年的年数
     for (int x = 1900; x <= 1900+years; x++)
     {
      if((x%100 == 0)&&(x%400 != 0))
       count++;
     }


     daysToMonth(days);

     cout<<"所以,从1900年开始经过"<<seconds<<"秒后的时间为:"<<endl;
     cout<<(years+1900)<<("年")<<months<<("月")<<leftdays<<("日")<<lefthours
      <<("时")<<leftminites<<("分")<<leftseconds<<("秒")<<endl;
     return 0;
    }
    本人的思路是这样的:先粗略的假设凡是能被4整除的年份就是闰年,则每4年中必有一年是闰年:if((years+1900)%4 == 0)是闰年的判断式。因此,我先求出4年的总时间second = 126230400(单位:秒),那么总时间(seconds/second)*4就是年数years,则剩下的即left = seconds%second中所包含年数最大为3,且其中一定不包含闰年,因为按照前面的第一条假设,1900年是"闰年".接下来的问题就是根据剩下的left秒求出有多少年(lyear)多少月多少日多少小时多少分多少秒。先求出年数lyear,得到真正的总年数years += lyear;再求出不构成分钟的剩下的秒数,再求出不构成小时的分钟数,再求出不构成一天的小时数,最后剩下天数,这里求出的天数也不是准确的,因为我的大假设是有点问题的,闰年的真正判别式为:

    if(year%4==0   &&   year%100!=0   ||   year%400==0) 显然我的假设只可能让求出的天数变少,所以要把不是闰年当作闰年的年份求出来,每求出一年相应的天数就要加1。这样得出的天数days才是正确的。  由天数转化为月数我专门写了一个函数daysToMonth(int sumDays);

    输出结果为:

    所以,从1900年开始经过7865284526秒后的时间为:
    2149年3月29日9时15分26秒

    展开全文
  • 时间限制: 1 Sec 内存限制: 128 MB 提交: 11570 解决: 7922 [状态] [讨论版] [提交] [命题人:admin] 题目描述 任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。也就是...

    1099: 角谷猜想(多实例测试)
    时间限制: 1 Sec 内存限制: 128 MB
    提交: 11570 解决: 7922
    [状态] [讨论版] [提交] [命题人:admin]
    题目描述
    任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。也就是说,不管怎样迭代,不断除以2以后,最后是1。现在给你一个自然数n,求出它转变为1所需要的步数。
    输入
    输入数据有多组,每组输入包含一个自然数n。测试数据保证输入数据及中间结果都在int范围内。
    输出
    对每组输入,输出经过角谷猜想变成1的步数。
    样例输入 Copy
    5
    11
    样例输出 Copy
    5
    14

    #include<stdio.h>
    int main()
    {
    	int n[10],i=0,num[10],j;
    	while(scanf("%d",&n[i])!=EOF)
    	{
    		num[i]=0;
    		while(n[i]!=1)
    		{
    			if(n[i]%2!=0)
    			{
    				n[i]=n[i]*3+1;
    				num[i]++;
    			}
    			else 
    			{
    				n[i]=n[i]/2;
    				num[i]++;
    			}
    		}
    		i++;
    	}
    	for(j=0;j<i;j++)
    	{
    		printf("%d\n",num[j]);
    	}
    	return 0;
    }
    
    
    
    展开全文
  • 时间限制: 1 Sec 内存限制: 128 MB 提交: 12713 解决: 8836 [状态] [讨论版] [提交] [命题人:admin] 题目描述 任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。也就是...

    1099: 角谷猜想(多实例测试)

    时间限制: 1 Sec 内存限制: 128 MB
    提交: 12713 解决: 8836
    [状态] [讨论版] [提交] [命题人:admin]

    题目描述
    任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。也就是说,不管怎样迭代,不断除以2以后,最后是1。现在给你一个自然数n,求出它转变为1所需要的步数。

    输入
    输入数据有多组,每组输入包含一个自然数n。测试数据保证输入数据及中间结果都在int范围内。
    输出
    对每组输入,输出经过角谷猜想变成1的步数。

    样例输入 Copy
    5
    11
    样例输出 Copy
    5
    14

    python:

    while True:
        try:
            n= int(input())
    
            k= 0
            while n!= 1:
                if n%2== 0:
                    n= n//2
                else:
                    n= n*3+1
                k+= 1
            print(k)
        except:
            break
    
    展开全文
  • 贪心算法

    2021-04-09 22:12:07
    按我的理解的话就是最优解,也就是怎样做尝试次数更少,花时间更短,又得利最多。 经过老师讲解,我发现很多题目都要分好几种策略,并且需要找规律,在纸上演算就必不可少了。 下面来看看几道题: 修理牛棚 题目...
  • 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部...
  • 回忆

    千次阅读 2005-06-01 02:47:00
    回想自己十多年来的生活(不是我要刻意隐瞒年龄,是我得客观的除掉刚出生没有记忆的那几年和睡觉并且没有做梦的那段时间),不能说是经过大风大浪,至少也是小风浪不断.于是我懂得了任何一种你所满意的生活哪怕已经是退...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的值顺序问题呢? 其他的表达式问题 *3.13 ++i和i++有什么区别? 3.14 如果我不使用表达式的值,那我应该用i++还是++i来做自增呢? 3.15 我要检查...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的值顺序问题呢? 38 其他的表达式问题 39 *3.13 ++i和i++有什么区别? 39 3.14 如果我不使用表达式的值,那我应该用i++还是++i来做自增呢? 39 ...
  • 3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的值顺序问题呢? 38 其他的表达式问题 39 *3.13 ++i和i++有什么区别? 39 3.14 如果我不使用表达式的值,那我应该用i++还是++i来做自增呢? 39 ...
  • 怎样做?我的目的又是什么呢?或许是对RPG的偏爱,或许是因为RPG实现起来相对简单而且容易发挥吧(一个好朋友的建议)!所以,我最终还是选择了它。 好,现在就让我先来说说我的计划吧: 经过反复的思量之后,发现...
  • 13.2 用一笔画出经过9个点的4条直线 13.3 时针、分针和秒针重合问题 13.4 怎样拿到第100号球 13.5 烧绳计时 第14章 算法面试题(光盘中阅读) 14.1 基础算法 14.1.1 字符串匹配 14.1.2 哥德巴赫猜想的近似证明 ...
  • 此计算方法参考1976年6月上海人民出版社《怎样绕变压器》. 15.密闭音箱 该功能可以根据低音喇叭单元的常用参数,计算出适合的密闭箱体体积,和示例箱体外尺寸(如果板厚=0,则计算箱体内容积).其中,箱体共振频率是你...
  • 也可以计算经过t时刻,电容C两端的电压值. 3.电阻串/并联 并联公式R=R1//R2.输入R1和R2,点击<计算>,得到R,R将显示在原先R1中.若需要继续并联,在R2中继续输入,再点击<计算>.例如需要计算100R//50R//10R,先在R1,R2中...
  • eTools 2.63

    2013-01-28 23:14:08
    此计算方法参考1976年6月上海人民出版社《怎样绕变压器》. 15.密闭音箱 该功能可以根据低音喇叭单元的常用参数,计算出适合的密闭箱体体积,和示例箱体外尺寸(如果板厚=0,则计算箱体内容积).其中,箱体共振频率是你...
  • 此计算方法参考1976年6月上海人民出版社《怎样绕变压器》. 15.密闭音箱 该功能可以根据低音喇叭单元的常用参数,计算出适合的密闭箱体体积,和示例箱体外尺寸(如果板厚=0,则计算箱体内容积).其中,箱体共振频率是你...
  • 与电路交换相比,分组交换的不足之处是:① 每一分组在经过每一交换节点时都会产生一定的传输延时,考虑到节点处理分组的能力和分组排队等候处理的时间,以及每一分组经过的路由可能不等同,使得每一分组的传输延时...
  • 此计算方法参考1976年6月上海人民出版社《怎样绕变压器》. 15.密闭音箱 该功能可以根据低音喇叭单元的常用参数,计算出适合的密闭箱体体积,和示例箱体外尺寸(如果板厚=0,则计算箱体内容积).其中,箱体共振频率是你...
  • 计算机实习日记

    2011-11-26 12:22:41
    而她不像我们是学计算机的,自己不会处理,又不好意思让其他同事来帮忙,毕竟在工作时间上网也不是什么光彩的事情,只好我这个“外人”帮忙了。 我过去之后看了下,这种问题一般就是几个地方:第一,直接修改IE的...
  • 4.4.5 JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数。 4.4.6 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。 4.4.7 垃圾回收算法的...
  • 精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

怎样求经过时间