欧拉计划·第十题

题目10:计算两百万以下所有质数的和。

10以下的质数的和是2 + 3 + 5 + 7 = 17.

找出两百万以下所有质数的和。

源码

STDMETHODIMP COuLa::Test10(int number)
{
	// TODO: 在此添加实现代码
	__int64 sum = 2;
	for(int i = 2; 2*i-1 <= number; i++)
	{
		int c = 2*i-1;
		for( int j = 2;c>10? j<=10 : j<=c;j++)
		{
			if(10 == j || j == c)
			{
				sum += c;
			}
			if(c%j == 0)
			{
				break;
			}
		}
	}
	printf("The Test 10 Number is %d.\n",sum);
	return S_OK;
}

函数调用

#define TEST10_NUMBER 2000000
IOula->Test10(TEST10_NUMBER);

输出

The Test 10 Number is 1876609501.
时间: 2024-09-28 18:02:12

欧拉计划·第十题的相关文章

欧拉计划&#183;第十一题

题目11:在20×20的网格中同一直线上四个数的最大乘积是多少? 在以下这个20*20的网格中,四个处于同一对角线上的相邻数字用红色标了出来: 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 6

欧拉项目第十题;用筛法做,

#include<stdio.h>#define N 2000000int a[N]; int main(){ __int64 sum=0; __int64 i,j; for(i=2;i<N;i++) a[i]=1; for(i=2;i<N;i++) if(a[i]) for(j=i;i*j<N;j++) a[i*j]=0; for(i=2;i<N;i++) if(a[i]) sum=sum+i; printf("%I64d",sum); retur

欧拉计划&#183;第七题

题目7:找出第10001个质数. 前六个质数是2,3,5,7,11和13,其中第6个是13. 第10001个质数是多少? 源码 STDMETHODIMP COuLa::Test7(int number) { // TODO: 在此添加实现代码 int iNumberForCout = 1; int iNumberForOutput = 0; int iNumberForAdd = 1; while(iNumberForCout<number) { iNumberForAdd++; iNumber

欧拉计划&#183;第八题

题目8:找出这个1000位数字中连续13个数字乘积的最大值. 找出以下这个1000位的整数中连续13个数字的最大乘积. 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 1254069874715852386305071569329096329

欧拉计划&#183;第五题

题目5:找出最小的能被1-20中每个数整除的数. 2520是最小的能被1-10中每个数字整除的正整数. 最小的能被1-20中每个数整除的正整数是多少? 源码 STDMETHODIMP COuLa::Test5(int number) { // TODO: 在此添加实现代码 int iForNumber[MAX_PATH] = {0}; int iForFinalNumber[MAX_PATH] = {0}; for(int i = number; i>0; i--) { int c = i; i

欧拉计划&#183;第六题

题目6:平方和与和平方的差是多少? 前十个自然数的平方和是: 12 + 22 + ... + 102 = 385 前十个自然数的和的平方是: (1 + 2 + ... + 10)2 = 552 = 3025 所以平方和与和的平方的差是3025  385 = 2640. 找出前一百个自然数的平方和与和平方的差. 源码 STDMETHODIMP COuLa::Test6(int number) { // TODO: 在此添加实现代码 __int64 iSquareSumNumber = 0; __i

欧拉计划&#183;第四题

题目4:找出由两个三位数乘积构成的回文. 一个回文数指的是从左向右和从右向左读都一样的数字.最大的由两个两位数乘积构成的回文数是9009 = 91 * 99. 找出最大的有由个三位数乘积构成的回文数. 源代码 STDMETHODIMP COuLa::Test4(int iMaxNumber) { // TODO: 在此添加实现代码 int outputNumber = 0; int iMaxOutputNumber = 0; for(int i = iMaxNumber/10; i<iMaxNu

欧拉计划第3题题解

Largest prime factor The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? 最大质因数 13195的所有质因数为5.7.13和29. 600851475143最大的质因数是多少? 解题思路 分解质因数的算法是 \(O( \sqrt{n} )\) 的算法. 求一个数 \(a\) 的质因数,可以从 \(2\) 开始到

欧拉计划第10题题解

Summation of primes The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two million. 素数的和 所有小于10的素数的和是2 + 3 + 5 + 7 = 17. 求所有小于两百万的素数的和. 解题思路 没有特别好的想法,下奶能想到的就是枚举算出200万以内的所有素数,然后求这些素数的和. 实现代码如下: #include <bits/st