(数论) SGU 105

D - Div 3

Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u

Submit Status Practice SGU 105

Appoint description: 
System Crawler  (2015-01-20)

Description

There is sequence 1, 12, 123, 1234, ..., 12345678910, ... . Given first N elements of that sequence. You must determine amount of numbers in it that are divisible by 3.

Input

Input contains N (1<=N<=231 - 1).

Output

Write answer to the output.

Sample Input

4

Sample Output

2
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
      int n;
      while(scanf("%d",&n)!=EOF)
      {
            int ans=(n/3)*2+((n%3)==2?1:0);
            printf("%d\n",ans);
      }
      return 0;
}

  

时间: 2024-09-30 12:13:57

(数论) SGU 105的相关文章

SGU - 105 - Div 3 (简单数学题!)

SGU - 105 Div 3 Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description There is sequence 1, 12, 123, 1234, ..., 12345678910, ... . Given first N elements of that sequence. You must determine amount of numb

SGU 105

//根据以下三个基本关系可以推出答案. //1.一个数对三取模的余数,是它各个数位之和对三取模的余数(对6,9也成立) //2.1234567891011……(n-1)(n)=1234567891011……(n-1)*10^(n的位数)+n //3.10 mod 3=1,所以10^n mod 3=1. //所以,当n模三余一时,1234567891011……(n-1)(n)模三余一:模三余零或余二,1234567891011…… //(n-1)(n)被三整除. #include "stdio.h

SGU[105] Div 3

Description 描述 There is sequence 1, 12, 123, 1234, ..., 12345678910, ... . Given first N elements of that sequence. You must determine amount of numbers in it that are divisible by 3. 给定数列 1, 12, 123, 1234, ..., 12345678910, ...的前N个元素.你需要判断其中一共有多少个元素

SGU 116 Index of super-prime 数论+完全背包+输出方案

题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=116 题意好晦涩 给你一个不超过一万的数 问它最少可以用多少个“超级素数”来表示 使“超级素数”之和等于它 如果无法这样表示 输出0 否则 按非降序形式输出方案 数论部分就模板的问题 没什么说的 完全背包方面也很常规 说说[输出方案] 背包九讲的伪码给的是二维dp[]的方法 实际上稍加改动就可以用在一维数组上 用一个rec[]记录dp[]的当前状态是从哪个状态转移而来(即上一个状态) 通过

SGU - 102 - Coprimes (简单数论!)

SGU - 102 Coprimes Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description For given integer N (1<=N<=104) find amount of positive numbers not greater than N that coprime with N. Let us call two positi

【SGU】SGU每日练1&#183;Coprimes【数论】欧拉函数

先介绍欧拉函数及其相关定理吧: 1.欧拉函数:对于任意一个数X,将其分解质因数为X=(P1^b1)*(P2^b2)*(P3^b3)...... 则小于X的与X互质的数的个数N为N = X * (1 - 1 / p1) * (1 - 1 / p2)....... 显然对于质数p,Euler(p) = p - 1: 2.一个数的所有质因子之和是euler(n)*n/2: 3.a^Euler(n) % n = 1,这里可以用模运算来证明: 具体实现: 1.先筛素数 2.从2开始遍历素数,能整除则乘,然

数论 + 扩展欧几里得 - SGU 106. The equation

The equation Problem's Link Mean: 给你7个数,a,b,c,x1,x2,y1,y2.求满足a*x+b*y=-c的解x满足x1<=x<=x2,y满足y1<=y<=y2.求满足条件的解的个数. analyse: 做法是扩展欧几里德. 1.首先是欧几里德算法,欧几里德算法是用于求任意两个数的最大公约数(gcd(a,b)), 这个方法基于一个定理,gcd(a,b)=gcd(b,a % b)(a>b),%表示取模. 我们来证明上述定理,因为a>b,

SGU 246. Black &amp; White(数论)

题意: 有2*n-1个黑色和白色的珠子组成的环形项链,求至少需要多少颗黑色珠子才能使任意排列的项链中都存在两个黑珠间有n个珠子. (2*n-1<=2^31-1); Solution: 先分析n=5,n=7,n=9的情况. 当2*n-1=5,必须有两颗黑珠距离为1(较短的方向). 2*n-1=7,必须有两颗黑珠距离为2. 2*n-1=9,必须有两颗黑珠距离为3. 可以发现 对k=2*n-1,必须存在两颗黑珠的距离为l=(k/2-1) 假设问题的答案是ans, 我们先来求ans-1,即最多的不满足问

UVA 11754 - Code Feat(数论)

UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题,分两种情况讨论 1.所有x之积较小时候,暴力枚举每个集合选哪个y,然后中国剩余定理求解 2.所有x之积较大时候,选定一个k/x尽可能小的序列,枚举x * t + y (t = 1, 2, 3...)去暴力求解. 代码: #include <stdio.h> #include <string.