【Project Euler】【Problem 1】Multiples of 3 and 5

Multiples of 3 and 5

Problem 1

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.


Answer:
233168

翻译:

3和5的倍数

Problem 1

如果我们列出10以内所有是3或者5的倍数的自然数,我们将得到3,5,6,9.这些数的和是23.

找出1000以内所有3或者5的倍数的和


答案:
233168
解法一:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int sum = 0;
    int index = 1;
    
    //遍历1000以内所有数,能被3或5整除的累加起来
    while (index < 1000)
    {
        if (index % 3 == 0 || index % 5 == 0)
        {
            sum += index;
        }
        index++;
    }
    printf("result is %d",sum);
    return 0;
}



解法二:
#include <stdio.h>

//求一个数num中,指定数factor的所有倍数(不包括num本身)的和;
int multiplesSum(int num,int factor)
{
    int quotient = (num-1)/factor;
    return (1+quotient)*quotient/2 * factor;
}
int main(int argc, char *argv[])
{
    int maxNum = 1000;
    //1000以内3的倍数和+5的倍数和-15的倍数和
    printf("result is %d" , multiplesSum(maxNum,3)+multiplesSum(maxNum,5)-multiplesSum(maxNum,15));
    return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值