Project Euler #1: Multiples of 3 and 5

Sort by

recency

|

1458 Discussions

|

  • + 0 comments

    Make sure to use floor div or else some tests using very large numbers wont work :'( Took me a while to find out... (Was just using int on the result before lol)

    def euler_sum(n):
        if n <1:
            return 0
        return int(n*(n+1)//2)
    
    def sum_of_multiples_of_3_and_5(n:int) -> None:
        n = n-1
        sum = euler_sum(n//3)*3 + euler_sum(n//5)*5 - euler_sum(n//15)*15
        print(max(sum,0))
    
  • + 0 comments

    import java.io.; import java.util.; import java.text.; import java.math.; import java.util.regex.*;

    public class Solution {

    public static void main(String[] args) {
         Scanner in = new Scanner(System.in);
        int t = in.nextInt();  // Number of test cases
    
        // Iterate through each test case
        for (int i = 0; i < t; i++) {
            int n = in.nextInt();  // The number for which we want to sum multiples of 3 or 5
    
    
            List<Integer> multiples = new ArrayList<>();
    
    
            for (int j = 1; j < n; j++) {
                if (j % 3 == 0 || j % 5 == 0) {
                    multiples.add(j);  
                }
            }
    
    
            int[] array = new int[multiples.size()];
            for (int j = 0; j < multiples.size(); j++) {
                array[j] = multiples.get(j);
            }
    
    
            int sum = 0;  
            for (int num : array) {
                sum += num;
            }
    
            // Output the sum for the current test case
            System.out.println(sum);
        }
    }
    

    }

  • + 0 comments

    import math import os import random import re import sys

    def res(x,n): q = (n-1)//x return x*q*(q+1)//2

    if name == 'main': t = int(input().strip())

    for t_itr in range(t):
        n = int(input().strip())
        sol = res(3,n)+res(5,n)-res(15,n)
        print(sol)
    
  • + 0 comments

    I am facing problem with Test Cases 2 and 3. I tried to check various boundary cases, but could not find the error. Could anyone please help? Here's my code in python:

    #!/bin/python3
    
    import sys
    
    
    t = int(input().strip())
    for a0 in range(t):
        n = int(input().strip())
        n = n - 1
        rem3 = n % 3; rem5 = n % 5; rem15 = n % 15
        if n < 3:
            quo3 = 0
        else:
            quo3 = (n-rem3)/3
        sum3 = 3 * (quo3*(quo3 + 1))/2
        if n < 5:
            quo5 = 0
        else:
            quo5 = (n-rem5)/5
        sum5 = 5 * (quo5*(quo5 + 1))/2
        if n < 15:
            quo15 = 0
        else:
            quo15 = (n-rem15)/15
        sum15 = 15 * (quo15*(quo15 + 1))/2
        sum_ = sum3 + sum5 - sum15
        print(int(sum_))
    
  • + 0 comments

    handle long only:

    public class Solution {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int t = in.nextInt();
            for(int a0 = 0; a0 < t; a0++){
                int n = in.nextInt()-1;
                //code below:
    						
                long ans=(3*sum(n/3))+(5*sum(n/5))-(15*sum(n/15));
                System.out.println(ans);
                
                //code above:
                
            }
        }
        
        public static long sum(long num){
            return (num*(num+1))/2;
        }
    }