nyoj399-整除个数】的更多相关文章

整除个数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 1.2.3- -n这n(0<n<=1000000000)个数中有多少个数可以被正整数b整除. 输入 输入包含多组数据每组数据占一行,每行给出两个正整数n.b. 输出 输出每组数据相应的结果. 样例输入 2 1 5 3 10 4 样例输出 2 1 2 #include<stdio.h> int main() { long long int n,i,b; //用int实际超出范围了,所以定义了双长整…
题目: 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 11! = 39916800,因此应该返回 2 挑战 O(logN)的时间复杂度 解题: 常用方法: 也许你在编程之美中看到,通过求能够被2 整除和能够被5整除个数的最小值就是答案,或者直接求能够被5整除的个数就是答案<能够被5整除的数显然比较小>,但是在这里,java python都试了,结果都会出现运行超时或者越界的问题. 维基百科中有如下计算方法: Java程序: class Solution { /* * param n…
小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认…
题目大意: 给定n,m和k,对于所有的0<=i<=n,0<=j<=min(i,m)有多少对(i,j)满足C(j,i)是k的倍数. 思路: 先预处理出组合数,再预处理一下能整除个数的前缀和,最后直接答即可. #include<cstdio> #include<cctype> inline int getint() { register char ch; while(!isdigit(ch=getchar())); register '; )+x)<<…
题意:求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数(这里的偶数位是的是从高位往低位数的偶数位).a,b<10^2000,m≤2000,0≤d≤9 a,b<10^2000,m≤2000,0≤d≤9 题解:用f[i][j]表示有i+1位,第i位是d,且%m=j的数的个数.(这个状态可能有点奇怪,不过比较便于转移)然后转移方式还是惯用的方法,判一下如果原数的偶数位不是d或者奇数位是d则停止计算即可. 自主AC开心 #include<iostream> #…
#include <stdio.h> /* 判断一个数能不能同时被3和5整除 --------soulsjie 20170525----- */ void main(){ int input; printf("请输入一个数:"); scanf("%d",&input); == && input%==) { printf("%d能同时被3和5整除!\n",input); } else{printf("%…
399-整除个数 内存限制:64MB 时间限制:3000ms 特判: No 通过数:9 提交数:18 难度:1 题目描述: 1.2.3… …n这n(0<n<=1000000000)个数中有多少个数可以被正整数b整除. 输入描述: 输入包含多组数据 每组数据占一行,每行给出两个正整数n.b. 输出描述: 输出每组数据相应的结果. 样例输入: 复制 2 1 5 3 10 4 样例输出: 2 1 2 C/C++ AC: #include <iostream> #include <a…
给你N个数,有两种操作 1:给区间[a,b]内的所有数都增加X 2:询问区间[a,b]能被7整除的个数 输入描述 Input Description 第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,表示操作的个数. 接下来Q行每行若干个整数.如果第一个数是add,后接3个正整数a,b,X,表示在区间[a,b]内每个数增加X,如果是count,表示统计区间[a,b]能被7整除的个数 输出描述 Output Description 对于每个询问输出一行一个答案 样例输入 Sample…
2141: 2333 题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“ 宝儿姐考察你一道很简单的题目.给你一个数字串,你能判断有多少个连续子串能整除3吗? 输入 多实例输入,以EOF结尾,每行一个数字串(长度<=1e6) 输出 每行一个数字串,表示能整除3的连续子串的个数 样例输入 (随机敲了一组样例,发现了新的bug) 样例输出 大致思路: 根据题意可知,时间复杂度只够跑单重循环,多重循环就炸了! 求一次前缀和,存进dp数组!然后对3取余,分别求出0/1/2的个数为sum…
package com.loaderman.Coding; /* 判断101-200之间有多少个素数(质数),并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.*/ public class Test { public static void main(String[] args) { int count = 0; for (int i = 100; i < 200; i++) { for (int j = 2; j…
//函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include <stdlib.h> #include <conio.h> #include <stdio.h> int fun( int m) { int i,k; ; ;i++)//取大于m的逐个数 { ;k<i;k++)//判断是否为素数质数 /*************found**************/ ) break; /*************found******…
有点懵,被几个9整除,我理解的是n=n/9能整除几次,代码如下: 1 /*45 [程序 45 被 9 整除] 2 题目:判断一个数能被几个 9 整除 3 */ 4 5 /*分析 6 * 1.用while循环,n/9大于0就继续循环 7 * 2.利用n%9==0判断是否可以被9整除 8 * 3.确定可以被9整除后,n=n/9的得到新的n 9 * 4.声明一个计数器,每除一次9就加1 10 * */ 11 12 package homework; 13 14 import java.util.Sca…
<script type="text/javascript"> for(var i = 3; i <= 100; i ++) {//控制2-100所有的数i for( var j = 2; j < i ; j ++){//将每一个比i小的数与i进行取模,如果如果为0那么说明这个数不是质数如果所有的数都不为0,那么这个数是质数 if( i % j == 0) { // console.log(i + "不是一个质数"); break; } if…
import java.util.Scanner;public class Test15 {    public static void main(String[] args) {        // TODO Auto-generated method stub        for (int i = 0; i < 1000; i++) {                        if (i % 3 == 0) {                System.out.print(i+&quo…
package C; public class Sushu { public static void main(String[] args) { int sum=0; for (int i = 101; i < 201; i++) { for (int j = 2; j <=i; j++) { if(j==i) { System.out.println(j); } else if(i%j==0) { sum++; break; } } } System.out.println("总共…
我先想到的是for循环........ 然后sum(find(mod(a:b,c)==0)),从10到100得到874,为什么不对呢? 比如a = [1 2 3 4  2 3 4 2],find(a==0)得到的是[2 5 8],并不是[0 1 0 0 1 0 0 1],直接判断的话得到的是后者.…
<?php$sum=0;for($i=101;$i<=200;$i++){    for($j=2;$j<=sqrt($i);$j++)    {       if($i%$j==0)       {           continue 2;       }    }           echo $i.' '; }      ?>…
Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies: Si % Sj = 0 or Sj % Si = 0. If there are multiple solutions, return any subset is fine. Example 1: nums: [1,2,3] Re…
最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a isPrime function. To determine if a number is prime, we need to check if it is not divisible by any number less than n. The runtime complexity of isPri…
(1)1与0的特性:         1是任何整数的约数,即对于任何整数a,总有1|a.         0是任何非零整数的倍数,a≠0,a为整数,则a|0. (2)若一个整数的末位是0.2.4.6或8,则这个数能被2整除. (3)若一个整数的数字和能被3整除,则这个整数能被3整除. (4) 若一个整数的末尾两位数能被4整除,则这个数能被4整除. (5)若一个整数的末位是0或5,则这个数能被5整除. (6)若一个整数能被2和3整除,则这个数能被6整除. (7)若一个整数的个位数字截去,再从余下的…
又自己写出来了好开心OvO 原题: 24点这个游戏好多人都玩过,就是给你4个数,添加相应的运算符,是否可以得到结果是24.小x在玩了很多遍这个游戏之后,想把这个游戏给改变一下.给你n个整数,在n个整数间,只能添加+和- 两种运算符.比如:给你4个整数:17,5,-21,-15.你可以构成下列8个表达式:17+5+(-21)+15=1617+5+(-21)-15=-1417+5-(-21)+15=5817+5-(-21)-15=2817-5+(-21)+15=617-5+(-21)-15=-241…
有若干个互不相等的无序的数,怎么选出其中最大的k个数. 我自己的方案:因为学过找第k大数的O(N)算法,所以第一反应就是找第K大的数.然后把所有大于等于第k大的数取出来. 写这个知道算法的代码都花了2个多小时,反思,太慢了. 注意边界条件,不要混混沌沌的. /************我自己的解法*****************/ //选择数组a[N]中最大的第k个数 int Select(int * a, int N, int k) { if(k > N || a == NULL) { cou…
1.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对? (1)程序分析:不难发现兔子的规律是:1,1,2,3,5,8,13,21.... 其实这个问题也就是求斐波那契数列的问题. (2)思路:应用递归来实现.1,2月的时候总数为一对,从第三个月开始就会产生一个新兔子,总数为2对,也就是born(n-1)+born(n-2) (3)代码实现: /** * 题目:古典问题:有一对兔子,从出生后第3个月…
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println("输入a:"); double a=sc.nextFloat(); System.out.println("输入b:"); double b=sc.nextFloat(); System.out.println("输入c:"); double c=sc…
题意:告诉一个数n,然后求出所有的位数和,插在n的尾部,重复求t次,判断最终的数是否能被11整除. 分析:直接模拟的过程,并且模拟的除的过程,却TLE,以为是方法错了,因为每次都得循环求一遍位数和: PS: 1.能被11整除:就是求偶数位和-奇数位和的差,如果差能被11整除,就是能够被11整除.比如35816, 3 - 5 + 8 - 1 + 6 = 11,能被11整除: 2.能被7整除:若一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除.比如133,…
获得两个随机数(100以内),并放入数组中 public int[] getTwoRandom(){ int[] t = new int[2]; Random rand = new Random(); for(int i=0;i<t.length;i++) { t[i] = rand.nextInt(100); } return t; } 1.一般算法,连续整数检测法即从m和n中比较小的数开始一次遍历整数,如果有出现可以同时被m和n整除的数,就是最大公约数 //连续整数检测法 public in…
/******************************************堆栈:一个数divided几个质因数(质因数的乘积为N)******************************************/ 1 #include<iostream> #include<stack> #include<cmath> using namespace std; bool Prime(int n);//判断质数 int main() { stack<i…
/*===================================== 能被3,5,7整除的数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个整数,判断它能否被3,5,7整除,并输出以下信息: 1.能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格): 2.能被其中两个数整除(输出两个数,小的在前,大的在后.例如:3 5或者 3 7或者5 7,中间用空格分隔) 3.能被其中一个数整除(输出这个除数) 4.不能被任何数整除:(输出小写字符'n',不包括单…
题意: 求A^B的所有正因子的和,最后模9901的结果. 思路: 若对一个数n进行素数分解,n=p1^a1*p2^a2*p3^a3*...*pk^ak那么n的所有正因子之和sum=(1+p1+...+p1^a1)*(1+p2+...+p2^a2)*...*(1+pk+...+pk^ak)然后可以用等比数列求和公式(pk^(ak+1)-1)/(pk-1)求每项的和,再累乘.用等比数列求1+pk+...+pk^ak时候要注意几点: 1.这里有除法,所以模的时候要将除以分母转化成乘以分母的逆元a =…
给你一个数n,请问n以内有多少个素数?(n <= 10e7) 一般来说,要是对一个整数进行素数判断,首先想到的是写个函数判断是否为素数,然后调用这个函数,时间复杂度为O(n^(½)),但是要求n以内的素数就略显吃力了. 要是求n以内的素数个数的话,可以用埃式筛选.预处理一下. 先看下面的代码: /* |埃式筛法| |快速筛选素数| |15-7-26| */ #include <iostream> #include <cstdio> using namespace std; c…