51Nod 1284 2 3 5 7的倍数

2024-03-09 05:48
文章标签 51nod 倍数 1284

本文主要是介绍51Nod 1284 2 3 5 7的倍数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。

Input

输入1个数N(1 <= N <= 10^18)。

Output

输出不是2 3 5 7的倍数的数共有多少。

Input示例

10

Output示例

1
 #include<iostream>
using namespace std;
int main(void){long long int N,ans;long long int a,b,c,d,ab,ac,ad,bc,bd,cd;while( scanf("%lld",&N)!=EOF){ ans = 0;a = N /2;b = N /3;c = N /5;d = N /7;ab = N/( 2 * 3);ac = N/( 2 * 5 );ad = N/( 2 * 7);bc = N/( 3 * 5);bd = N/( 3 * 7);cd = N/( 5 * 7 );long long int abc = N/( 2 *3 *5);long long int abd = N /( 2 *3*7);long long int acd = N/( 2 * 5*7);long long int bcd = N/( 3 * 5 * 7 );long long int abcd = N/( 2*3*5*7);ans = a+b+c+d -ab-ac-ad-bc-bd-cd+ abc+  abd+ acd +bcd -abcd ;ans = N- ans; printf("%lld\n",ans);}return 0;
}

 

这篇关于51Nod 1284 2 3 5 7的倍数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789696

相关文章

数论 - 整除问题 --- 整数集合中找出3的最大倍数

Mean:   题目描述:给一个包含非负整数的数组(长度为n),找出由这些数字组成的最大的3的倍数,没有的话则输出impossible。 analyse: 首先想到的就是直接暴力,这是最蠢的方法,数据一大的话,必会TLE。 直接用蛮力的话,生成所有的组合,为 2^n个,对每个数字再进行比较判断,需要 O(n)的时间,因为n可能会比较大,需要每个位的比较。总的时间复杂度为O(n * 2

【51nod】算法马拉松4 F 移数字 【快速求N!%P】【FFT】

传送门:【51nod】算法马拉松4 F 移数字 涉及知识点:多项式求逆,多项式除法,多点插值,阶乘取模。 对于N!%P,复杂度为 O(N−−√log2N−−√) O(\sqrt N \log^2\sqrt N)。 但常数巨大,和暴力算实际复杂度只相差常数= = 这个是可以扩展到组合数取模的~ my  code: my~~code: #include <stdio.h>#includ

判断一个数是否是2的倍数----------面试算法

思考: 如果要判断一个数是2的倍数,只需要判断这个数的二进制的第一位是1,其他的位都是0就可以。 也就是形如: 100100001000000 注意,上面都是二进制的表示 关键是怎么判断只有第一位是1,其他的位都是0呢? 比如: 1000 值为8 我们让他和111去做&运算,就能判断后面的全都是0,同时,因为我们最高位是0,所以,整个数做一个&运算之后,值就为0 答案: pub

java中,HashMap为什么每次扩容的倍数是2,而不是1.5或者2.5?

本文为转载文章,部分位置加入了个人对原文的理解 原文:https://www.zhihu.com/question/422840340/answer/1494603694 来源:知乎   一、前言二、HashCode为什么使用31作为乘数 1. 固定乘积31在这用到了2. 来自stackoverflow的回答3. Hash值碰撞概率统计4. Hash值散列分布   三、HashMap 数据

UVA10717 - Mint(欧几里德求最小共倍数)

UVA10717 - Mint(欧几里德求最小共倍数) 题目链接 题目大意:要求你设计桌子,桌子的四条腿是用四种不同的硬币堆砌起来,并且这四条腿的长度要求要种相同。现在给n种硬币,然后给你t个要求的高度H。要求你给出能够用这些硬币设计出来的桌子的高度最接近H的两个数。 解题思路:要求四条腿一样长的话就是求这四种硬币厚度的最小共倍数,然后这里会给n种硬币,需要枚举出每四个的组合,求出用

[POJ 1284] Primitive Roots (数论,原根)

POJ - 1284 题意是,求一个质数的原根 原根的定义是,对于正整数 aimodp(i=[1,p−1]) a^i mod p (i=[1,p-1])得到的集合为{1,2,…,p-1},那么则称 a是 p的一个原根 对于任意正整数 p,其原根个数为 ϕ(ϕ(p)) \phi( \phi(p) ), ϕ(n) \phi(n)为欧拉函数,表示小于n且与n互质的数的个数 而质数的欧拉函数值

独木舟(51Nod-1432)

题目 n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? 输入 第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和独木舟的承重。 接下来n行,每行一个正整数,表示每个人的体重。体重不超过1000000000,并且每个人的体

hdu 1284 钱币兑换问题(完全背包 母函数)

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7270    Accepted Submission(s): 4272 Problem Description 在一个国家仅有1分,2分,3分硬币,

poj 1284 Primitive Roots(数论:欧拉函数)

我开始还以为是求最小原根呢 直接打表+快速幂取模 后来才发现是求原根的个数 结果为phi(n-1) 证明就不再赘述了,网上很多 而且感觉这种题太偏了,没有必要浪费太多时间 代码如下: #include <cmath>#include <cstdio>#include <iostream>using namespace std;int euler_phi(int n) {in