欧拉计划
窗外的白月光
大多数时候我们都不知道自己何去何从。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
欧拉计划18--Maximum path sum I
#include<iostream> #include<string.h> #include<math.h> using namespace std; int main() { int ans = 0; int a[50][50],sum[50][50]; memset(sum,0,sizeof(sum)); for(int i=1;i<=15...原创 2019-02-08 11:01:05 · 250 阅读 · 0 评论 -
欧拉计划19--Counting Sundays
结果:171 #include<iostream> using namespace std; int main() { int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int day=1,ans =0; for(int i=1900;i<=2000;i++){ if((i%4==0&&i...原创 2019-02-08 12:25:38 · 248 阅读 · 0 评论 -
欧拉计划20--Factorial digit sum
阶乘数字和 n! 的意思是 n × (n − 1) × … × 3 × 2 × 1 例如,10! = 10 × 9 × … × 3 × 2 × 1 = 3628800,所以10!的各位数字和是 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27。 求出100!的各位数字和。 结果:648 #include<iostream> #include<string....原创 2019-02-08 13:00:18 · 326 阅读 · 0 评论 -
欧拉计划21--Amicable numbers
记d(n)为n的所有真因数(小于n且整除n的正整数)之和。如果d(a) = b且d(b) = a,且a ≠ b,那么a和b构成一个亲和数对,a和b被称为亲和数。例如,220的真因数包括1、2、4、5、10、11、20、22、44、55和110,因此d(220) = 284。284的真因数包括1、2、4、71和142,因此d(284) = 220。说明284和220是亲和数。 求所有小于10000的...原创 2019-02-11 11:20:11 · 361 阅读 · 0 评论 -
欧拉计划22--Names score
姓名得分 在这个46K的文本文件names.txt(右击并选择“目标另存为……”)中包含了五千多个姓名。首先将它们按照字母序排列,然后计算出每个姓名的字母值,乘以它在按字母顺序排列后的位置,以计算出姓名得分。 例如,按照字母序排列后,位于第938位的姓名COLIN的字母值是3 + 15 + 12 + 9 + 14 = 53。因此,COLIN的姓名得分是938 × 53 = 49714。 文件...转载 2019-02-11 12:16:08 · 15034 阅读 · 0 评论 -
欧拉计划23--Non-abundant sums
并非盈数之和 完全数是指真因数之和等于自身的那些数。例如,28的真因数之和为1 + 2 + 4 + 7 + 14 = 28,因此28是一个完全数。 一个数n被称为亏数,如果它的真因数之和小于n;反之则被称为盈数。 由于12是最小的盈数,它的真因数之和为1 + 2 + 3 + 4 + 6 = 16,所以最小的能够表示成两个盈数之和的数是24。通过数学分析可以得出,所有大于28123的数都可以被...原创 2019-02-11 13:03:46 · 442 阅读 · 0 评论 -
欧拉计划24--Lexicographic permutations
字典序排列 排列指的是将一组物体进行有顺序的放置。例如,3124是数字1、2、3、4的一个排列。如果把所有排列按照数字大小或字母先后进行排序,我们称之为字典序排列。0、1、2的字典序排列是: 012 021 102 120 201 210 数字0、1、2、3、4、5、6、7、8、9的字典序排列中第一百万位的排列是什么? 结果:2783915460 #include&...原创 2019-02-11 13:14:05 · 319 阅读 · 0 评论 -
欧拉计划26--Reciprocal cycles
倒数的循环节 单位分数指分子为1的分数。分母为2至10的单位分数的十进制表示如下所示: 1/2= 0.5 1/3= 0.(3) 1/4= 0.25 1/5= 0.2 1/6= 0.1(6) 1/7= 0.(142857) 1/8= 0.125 1/9= 0.(1) 1/10= 0.1 这里0.1(6)表示0.166666…,括号内表示有一位循环节。可以看出,1/7有六位循环节。 找出正整数...转载 2019-02-18 22:17:59 · 300 阅读 · 0 评论 -
欧拉计划25
The Fibonacci sequence is defined by the recurrence relation: Fn= Fn−1+ Fn−2, where F1= 1 and F2= 1. Hence the first 12 terms will be: F1= 1 F2= 1 F3= 2 F4= 3 F5= 5 F6= 8 F7= 13 F8= 21 ...原创 2019-04-05 10:32:17 · 262 阅读 · 0 评论 -
欧拉计划28
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows: 2122 23 2425 20 78 910 19 6 12 11 18 54 3121716 15 1413 It can be ...原创 2019-04-05 10:34:40 · 183 阅读 · 0 评论 -
欧拉计划31
Coin sums Problem 31 In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation: 1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p). It is possi...原创 2019-04-05 10:37:01 · 242 阅读 · 0 评论 -
欧拉计划33
消去数字的分数 49/98是一个有趣的分数,因为缺乏经验的数学家可能在约简时错误地认为,等式49/98 = 4/8之所以成立,是因为在分数线上下同时抹除了9的缘故。 我们也会想到,存在诸如30/50 = 3/5这样的平凡解。 这类有趣的分数恰好有四个非平凡的例子,它们的分数值小于1,且分子和分母都是两位数。 将这四个分数的乘积写成最简分数,求此时分母的值。 答案:100 #inclu...原创 2019-04-05 11:24:19 · 216 阅读 · 0 评论 -
欧拉计划34
各位数字的阶乘 145是个有趣的数,因为1! + 4! + 5! = 1 + 24 + 120 = 145。 找出所有各位数字的阶乘和等于其本身的数,并求它们的和。 注意:因为1! = 1和2! = 2不是和的形式,所以它们并不在讨论范围内。 #include<iostream> using namespace std; int jc(int k){ int ans = ...原创 2019-04-05 11:49:16 · 313 阅读 · 0 评论 -
欧拉计划17--Number letter counts
#include<iostream> #include<string.h> using namespace std; int a[105],b[5]; void Init(){ memset(a,0,sizeof(a)); a[1]=a[2]=a[6]=a[10] = 3; a[4]=a[5]=a[9] = 4; a[3]=a[7]=a[8]=a[40...原创 2019-01-29 20:03:32 · 320 阅读 · 0 评论 -
欧拉计划10--Summation of primes
#include <iostream> #include <algorithm> #include <string.h> using namespace std; #define MAX_N 2000000 typedef long long lint; int prime[MAX_N+5]; int is_prime[MAX_N+5]; int main(...原创 2019-01-23 17:29:14 · 177 阅读 · 0 评论 -
欧拉计划09
#include<iostream> using namespace std; int main() { for(int i=1;i<=1000;i++){ for(int j=1;j<=1000;j++){ for(int k=1;k<=1000;k++){ if(i+j+k==1000&&i*i+j*j==k*k){ ...原创 2019-01-23 16:15:09 · 140 阅读 · 0 评论 -
欧拉计划12--Highly divisible triangular number
Answer: 76576500 #include<iostream> #include<math.h> using namespace std; int value(int temp){ int num = 0; for(int i=1;i<=sqrt(temp);i++){ if(temp%i==0){ if(i=...原创 2019-01-23 19:39:00 · 229 阅读 · 0 评论 -
欧拉计划13--Large sum
结果:5537376230390876637302048746832985971773659831892672 取十位:5537376230 #include<iostream> #include<string.h> using namespace std; int main() { char c[55]; int a[55],b[105]; memset(b...原创 2019-01-23 21:32:00 · 273 阅读 · 0 评论 -
欧拉计划水题14--Longest Collatz sequence
#include<iostream> using namespace std; int klz(long long n,int len){ if(n==1) return len; if(n%2==0){ klz(n/2,len+1); }else{ klz(3*n+1,len+1); } } int main() { int max=0,ans,temp; ...原创 2019-01-23 21:53:32 · 237 阅读 · 0 评论 -
欧拉计划15--Lattice paths
动态解比较好,当前节点的路径数是其前一个节点和上面一个节点的可能性之和。 状态转移方程:a[i][j] = a[i-1][j]+a[i][j-1]; #include<iostream> using namespace std; int main() { long long a[25][25]; for(int i = 0;i < 21;i++){ for(int...原创 2019-01-24 17:25:06 · 272 阅读 · 0 评论 -
欧拉计划16--Power digit sum
用数组模拟运算的步骤,每一位存入数组内。 #include<iostream> #include<string.h> using namespace std; int main() { int a[1000]; int ans = 0; memset(a,0,sizeof(a)); a[0] = 1; for(int i=1;i<=1000;i++){...原创 2019-01-24 19:54:59 · 215 阅读 · 0 评论 -
欧拉计划001--Multiples of 3 and 5
#include<iostream> using namespace std; int main() { int i,ans=0; for(int i=1;i<1000;i++){ if(i%3==0||i%5==0){ ans += i; } } cout<<ans<<endl; return 0; } 结果:233168...原创 2019-01-21 21:21:44 · 224 阅读 · 0 评论 -
欧拉计划002--Even Fibonacci numbers
#include<iostream> using namespace std; int main() { long long ans=0,i,b1=0,b2=1; while(i<4000000){ i = b1+b2; if(i%2==0){ ans+=i; } b1= b2; b2 = i; } cout<<ans<&...原创 2019-01-21 21:26:35 · 172 阅读 · 0 评论 -
欧拉计划003--Largest prime factor
求600851475143最大的质因数是多少? 举例24 = 4 X 6= 2 X 2 X 2 X 3,即2,3为质因数,3最大,可利用24不断除去小的质因数,最后剩下最大质因数,即 ( ( 24/2 )/2 )/2 = 3; 结果:6857 #include<iostream> using namespace std; int main() { long long te...原创 2019-01-21 21:36:22 · 233 阅读 · 0 评论 -
欧拉计划004--Largest palindrome product
结果:906609,简单的暴力就可以解决,注意判断产生的回文数是否为最大即可。 #include<iostream> using namespace std; int main() { int i,j; int ans=0; for(i=999;i>=100;i--){ for(j=999;j>=100;j--){ long long temp = i*...原创 2019-01-21 21:39:17 · 166 阅读 · 0 评论 -
欧拉计划005--Smallest multiple
最小的能够被1到20整除的正数是多少? 直接交答案的题硬跑就行。 结果:232792560 #include<iostream> using namespace std; int main() { long long ans=21 ; int k = 1; while(k){ k = 0; for(int i=1;i<=20;i++){ if(ans...原创 2019-01-21 21:43:48 · 263 阅读 · 1 评论 -
欧拉计划006--Sum square difference
#include<iostream> using namespace std; int main() { int i,ans=0,t=0; for(i=1;i<=100;i++){ int temp = i*i; ans += temp; } for(i=1;i<=100;i++){ t+=i; } t = t*t; cout<<...原创 2019-01-21 21:47:40 · 182 阅读 · 0 评论 -
欧拉计划007--10001st prime
筛法筛一下存到数组就可以,线性筛更好了。 结果:104743 #include<iostream> #include<string.h> #define maxin 200000 using namespace std; int a[maxin]; int b[maxin]; int main() { int ans = 0; memset(a,0,sizeo...原创 2019-01-21 21:50:41 · 184 阅读 · 0 评论 -
欧拉计划008--Largest product in a series
更新一下,重新写一下,输入写到文件里,再重定向到输入就好: #include <iostream> #include <algorithm> #include <string.h> using namespace std; #define MAX_N 1000 typedef long long lint; char num[MAX_N+5]; int m...原创 2019-01-21 21:53:14 · 118 阅读 · 0 评论 -
欧拉计划--27
二次“素数生成”多项式 欧拉发现了这个著名的二次多项式: n2+ n + 41 对于连续的整数n从0到39,这个二次多项式生成了40个素数。然而,当n = 40时,402+ 40 + 41 = 40(40 + 1) + 41能够被41整除,同时显然当n = 41时,412+ 41 + 41也能被41整除。 随后,另一个神奇的多项式n2− 79n + 1601被发现了,对于连续的整数...原创 2019-06-16 10:01:12 · 558 阅读 · 0 评论
分享