刷题总结(1)

作者: namedsatan | 来源:发表于2019-11-14 20:59 被阅读0次

题目描述

给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。

输入描述

本题有多组输入每行一个数n,1<=n<=10^18.

输出描述

每行输出输出不是2 5 11 13的倍数的数共有多少。

示例

输入

15

输出

4

AC代码

#include <stdio.h>
int main()
{
    long n;
    while(~scanf("%ld",&n)) //该处是牛客网oj处理多组输入时需要加的
    {
        long long a1 = n / 2 + n / 5 + n / 11 + n / 13; //2、5、11、13倍数的个数
        long long a2 = n / 10 + n / 22 + n / 26 + n / 55 + n / 65+ n / 143;//(2,5)、(2,11)、(2,13)、(5,11)、(5,13)、(11,13)两数倍数的个数
        long long a3 = n / 110 + n / 130 + n / 286 + n / 715;   //(2,5,11)、(2,5,13)、(2,11,13)、(5,11,13)三数倍数的个数
        long long a4 = n / 1430;    //(2,5,11,13)四数倍数的个数
        long a = a1 - a2 + a3 - a4; //该句理解见文章最后
        printf("%ld\n",n - a);
    }
    return 0;
}

总结

开始做这道题时,想着直接遍历1~n,然后依次判断不能整除2、5、11、13,则计数器加1,实现如下:

int count = 0;
for(int i = 0; i < n; i++)
{
    if((i%2!=0)&&(i%5!=0)&&(i%11!=0)&&(i%13!=0))
    {
        count++;
    }
}

但是这种方法的复杂度为O(N),在牛客网oj时超时,不能通过,所以换成了如上方法。

对于表达式a1-a2+a3-a4的理解:

2 5 11 13
2 5 11 13
4 10
6 15
8
10
12
14

如上是当n为15时,各个数的倍数,由上面可知

a1 = 7 + 3 + 1+ 1

但仔细观察便可发现其中10算了两次,10即是2的倍数又是5的倍数,所以必须减去一次两数倍数,这便有了a2

a2 = 1 + 0 + 0 + 0 + 0 + 0

于是有a1 - a2,同理可推测整个式子。

相关文章

  • PTA刷题总结-Part 3 数据结构与算法

    PTA刷题总结-Part 1 基础部分PTA刷题总结-Part 2 模拟与数学问题PTA刷题总结-Part 3 数...

  • PTA刷题总结-Part 2 模拟与数学问题

    PTA刷题总结-Part 1 基础部分PTA刷题总结-Part 2 模拟与数学问题PTA刷题总结-Part 3 数...

  • 刷题总结(1)

    题目描述 给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。 输入描述 本题有多组输入每行一个数n...

  • 人生跃迁记录史

    早:刷题,图推,总结 中:资分刷题 晚:刷题总结,申论复习1小时 睡前回顾当天所需,学到了记住了什么清楚明白 高频...

  • Java刷题总结(1)

    1在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )正确答案: A 你的答案: B (错...

  • LeetCode 刷题总结(1)

    1.两数之和 AC代码 思路 刚开始就是用双层for循环写,然后秉承着谦虚的态度看了题解,发现真的有O(N)的算法...

  • 刷题总结

    以前学习总觉得听懂了就会了,一直到现在都觉得。这几天忙考试,想着刷题吧,刷一个错一个,有因为题目没看清楚的但大...

  • 「自律挑战」Day36

    2019.02.18日结Day356 考试与复习 晨读+总结√ 数量概率总结+作业√ 申论小题1总结√ 刷题√ 晚...

  • Leetcode刷题总结(1):贪心问题

    又到了需要准备面试的季节,决定来小刷一下Leetcode,在每个Tag里适当地挑几道,锻炼一下手感啥的。 455 ...

  • 算法刷题总结

    参考资料:[1]. 二叉搜索树转化为排序的二叉链表(《剑指offer》27题)[2]. 快速排序的基本思想[3]....

网友评论

    本文标题:刷题总结(1)

    本文链接:https://www.haomeiwen.com/subject/swsdictx.html