안녕하세요. '프로젝트 오일러'에서 문제를 가져왔습니다.
1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합). 1^2 + 2^2 + ... + 10^2 = 385 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱). (1 + 2 + ... + 10)^2 = 55^2 = 3025 따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?
211개의 풀이가 있습니다.
sum, sqrsum = 0, 0
for i in range(1, 101):
sum += i
sqrsum += i*i
print(sum*sum - sqrsum) # 25164150
Ruby
gap = ->n { (1..n).sum**2 - (1..n).sum {|e| e**2 } }
Test
expect( gap[10] ).to eq 2640
expect( gap[100] ).to eq 25164150
def problem(n):
sumfirst = 0
squrefirst = 0
for i in range(1,n+1):
sumfirst += i
squrefirst += i**2
sumfirst = sumfirst**2
return sumfirst - squrefirst
def Func1():
result1=0
for i in range(1,101):
result1 += i**2
return result1
def Func2():
result2=0
sum=0
for i in range(1,101):
sum+= i
result2 = sum**2
return result2
print(Func2()-Func1())
정답은25164150
def f(max1):
a1 = sum([x ** 2 for x in range(1, max1+1)])
a2 = sum(range(1, max1+1)) ** 2
print(a1, a2, a2-a1)
f(10)
f(100)
addmul=0
for i in range(1,101):
addmul=addmul+i
addmul=addmul*addmul
muladd=0
for i in range(1,101):
muladd=muladd+i*i
print(addmul-muladd)
# python 3.6
num = range(1, 101)
sOSq = sum([i**2 for i in num])
sqOS = sum([i for i in num])**2
print(abs(sOSq - sqOS))
# ans: 25164150
namespace _20170907
{
class Program
{
static void Main(string[] args)
{
decimal wprhq = 0;
decimal gkq = 0;
for(int a = 1; a<=100; a++)
{
wprhq += a * a;
}for(int b = 1; b<=100; b++)
{
gkq += b;
}
gkq *= gkq;
Console.WriteLine(gkq - wprhq);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Square_Square
{
class Program
{
static void Main(string[] args)
{
int SquareOfSum = 0;
int SumOfSquare = 0;
for(int i = 1; i <= 100; i++)
{
SquareOfSum += i;
SumOfSquare += (i * i);
}
SquareOfSum = SquareOfSum * SquareOfSum;
Console.WriteLine(SquareOfSum - SumOfSquare);
}
}
}
package programming;
public class oiler {
public static void main(String[] args) {
int sum = 0;
int sum2 = 0;
for(int i=1;i<=100;i++){
sum+=(i*i);
}
for(int i=1;i<=100;i++){
sum2 += i;
}
System.out.println(sum2*sum2-sum);
}
}
print(range(1, 101))**2 - sum(x**2 for x in range(1, 101)))
합의 제곱이 제곱의 합보다 큰 것은 수학적으로 증명 가능하기 떄문에 절댓값 함수는 넣지 않음.
파이썬 3.6.2 64
파이썬 3.6
def totalpowsub(x):
total = 0
powtotal = 0
for i in range(1,x+1):
total += i
powtotal += i**2
print("\n",">>> %d까지 자연수의 '합의 제곱'과 '제곱의 합'의 차는 %d 입니다." %(x,total**2-powtotal))
num = int(input(" ▶ 범위값을 자연수로 입력하세요 : "))
totalpowsub(num)
*결과값
▶ 범위값을 자연수로 입력하세요 : 100
>>> 100까지 자연수의 '합의 제곱'과 '제곱의 합'의 차는 25164150 입니다.
파이썬3
x = 0
y = 0
for i in range(1, 101):
x += i
x = x ** 2
for o in range(1, 101):
y += o ** 2
print(x - y)
n = int(input("범위 : "))
def squaresum(number):
a = number
b = 0
c = 0
for i in range(n+1):
b += i*i
c += i
c = c*c
return c-b
print(squaresum(n))
sum_square=0
square_sum=0
temp_sum=0
for k in range(1,101):
temp_sum+=k
sum_square=temp_sum**2
for k in range(1,101):
square_sum+=k**2
print(sum_square-square_sum)
public class calculationDigit {
int beginNumber;
int endNumber;
double squareAndSum;
double sumAndSquare;
public calculationDigit(int beginNumber, int endNumber) {
this.beginNumber = beginNumber;
this.endNumber = endNumber;
}
public double squareAndSum() {
for(int i = 1; i <= endNumber; i++) {
squareAndSum += Math.pow(i, 2);
}
return squareAndSum;
}
public double sumAndSquare() {
for(int i = 1; i <= endNumber; i++) {
sumAndSquare += i;
}
sumAndSquare = Math.pow(sumAndSquare, 2);
return sumAndSquare;
}
public double result() {
return sumAndSquare - squareAndSum;
}
}
제곱의 합 338350.0 합의 제곱 :2.55025E7 합의 제곱과 제곱의 합의 차이는 :2.516415E7
def sum_of_squares(n):
sum = 0
for i in range(1,n+1):
sum += i**2
return sum
def sum_squared(n):
sum = 0
for i in range(1,n+1):
sum += i
return sum**2
def diff(n):
return sum_squared(n) - sum_of_squares(n)
print(diff(100))
def difference(n):
sumandsq = 0
sqandsum = 0
for number in range(1, n + 1):
sumandsq = sumandsq + number
sqandsum = sqandsum + number ** 2
sumandsq = sumandsq ** 2
return abs(sumandsq - sqandsum)
print(difference(100))
#25164150
Python 3
def pow_and_sum(n):
pass
ps1 = pow((1 + n) * (float(n / 2)), 2) # sum -> pow
ps2 = 0 # pow -> sum
for i in range(0, n+1):
ps2 += pow(i, 2)
ps3 = ps1 - ps2
print("%d %d %d" % (ps1, ps2, ps3))
def main():
pass
pow_and_sum(100)
main()
# 100까지의 자연수의 합의 제곱과 제곱의 합의 차이
# 합의 제곱 - 제곱의 합 = ?
# 제곱의 합은 pow()함수를 이용해 구현, or x ** 2
# 합의 제곱은 1~100의 자연수를 더한 뒤 pow() 함수 or x **2.
a , b = 0,0
for i in range(1,101):
a += pow(i,2)
b += i
print(b**2 - a)
public class Diff{
public static void main(String args[]){
int i,j;
int toTal1=0;
int toTal2=0;
for(i=1;i<101;i++){
toTal1 += i;
}
toTal1 = toTal1 * toTal1;
for(j=1;j<101;j++){
toTal2 += j*j;
}
int n = Math.abs(toTal1 - toTal2);
System.out.print("100까지의 자연수의 합의 제곱과 제곱의 합의 차이는 ");
System.out.println(n + "입니다.");
}
}
def square(n):
summ = 0
for i in range(1,n+1) :
summ += i**2
return int((((1+n)*n)/2)**2 - summ)
print(square(10))
Swift입니다.
import Foundation
var numbers = Array(1...100)
var t1 = numbers.reduce(0, { $0 + $1*$1})
var t2 = numbers.reduce(0, +)
print("\(t2*t2 - t1)")
python 입니다.
from functools import reduce
print(sum(range(1, 101)) ** 2 - reduce(lambda a, b: a + b ** 2, range(1, 101)))
package codingDojang;
public class Oiler {
public int oiler(int num) {
int sum = 0;
int sqrsum = 0;
for(int i = 1; i <= num; i++) {
sqrsum += i*i;
sum += i;
}
int sumsqr = sum * sum;
return sumsqr - sqrsum;
}
public static void main(String[] args) {
Oiler oil = new Oiler();
System.out.print(oil.oiler(100));
}
}
public class hello {
public static void main(String[] args) {
int num = 0;
int sum = 0;
for(int i=1;i<=100;i++){
num+=(i*i);
}
for(int i=1;i<=100;i++){
sum += i;
}
System.out.println(sum2*sum2-sum);
}
}
자바입니다
public static void main(String[] args) throws Exception {
int multSum = 0;
int addSum = 0;
for (int i=1; i<=100; i++) {
multSum += i*i;
addSum += i;
}
System.out.println(addSum*addSum - multSum);
}
private static int sum;
private static int i;
private static int del;
public static int sumsum(int n)
{
sum=0;
for(i=1;i<=n;i++)
{
sum+=i;
}
sum*=sum;
return sum;
}
public static int SumSum(int n)
{
sum=0;
for(i=1;i<=n;i++)
{
del=i*i;
sum+=del;
}
return sum;
}
let sum = 0
let sum2 = 0
for(let i = 1; i<101; i++) {
sum += i
sum2 += i*i
};
let minus = sum*sum - sum2;
console.log(minus)
s_square = 0
s_sumsquarebefore = 0
for i in range(1,101):
s_square = s_square + i**2
s_sumsquarebefore = s_sumsquarebefore + i
s_sumsquarebefore ** 2 - s_square
def fibo():
a = 1
b = 2
s = 0
while a < 4000001:
a, b = b, a + b
if a % 2 == 0:
print("fibonacci value : %d" % a)
s += a
print("sum of fibonacci value above : %d" % s)
fibo()
fibonacci value : 2
fibonacci value : 8
fibonacci value : 34
fibonacci value : 144
fibonacci value : 610
fibonacci value : 2584
fibonacci value : 10946
fibonacci value : 46368
fibonacci value : 196418
fibonacci value : 832040
fibonacci value : 3524578
sum of fibonacci value above : 4613732
sumSquare = 0
squareSum = 0
res = 0
for i in range(1,101):
res += i
squareSum += i*i
sumSquare = res*res
print(sumSquare-squareSum)
result = 0
for i in range(1, 100):
result += i**2
total = 0
for i in range(1, 100):
total += i
power = total ** 2
numpy로 연산했더니 파이썬 라이브러리보다 두배정도 빠르네요. 시간 연사에 ipython의 %timeit을 사용했습니다.
import numpy as np
print(sum(np.arange(101)) ** 2 - sum(np.arange(101) ** 2))
# Output:
#2640
#
# In [5]: %timeit sum(np.arange(101)) ** 2 - sum(np.arange(101) ** 2)
# 17.4 µs ± 235 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
public static void main(String[] args) throws Exception {
int multSum = 0;
int addSum = 0;
for (int i=1; i<=100; i++) {
multSum += i*i;
addSum += i;
}
System.out.println(addSum*addSum - multSum);
}
sum_mul = 0 #제곱의 합
sum_add = 0 #합의 제곱
for i in range(1,101):
sum_mul += i ** 2
sum_add += i
print("합의 제곱 - 제곱의 합 = {0}".format(sum_add ** 2 - sum_mul))
public static void main(String[] args) {
System.out.println((int) Math.pow(sum(100), 2) - sumPow(100));
}
private static int sum(int i) {
return i % 2 == 0 ? (1 + i) * (i / 2) : i * ((i - 1) / 2) + i;
}
private static int sumPow(int i) {
return (int) (i != 0 ? Math.pow(i, 2) + sumPow(--i) : 0);
}
list_of_square = [x*x for x in range(1, 101)]
sum_of_square = sum(list_of_square)
num_list = range(1, 101)
square_of_sum = sum(num_list)**2
print(square_of_sum - sum_of_square)
def sumfunc(p):
temp=0
tempa=0
while tempa<=p:
temp=temp+(tempa*tempa)
tempa=tempa+1
return(temp)
def funcsum(p):
return(0.5*(p*(p+1)))
def what(p):
return(abs(sumfunc(p)-funcsum(p)))
Python
c언어
#include<stdio.h>
#define RANGE 100
int main()
{
int i,power =0 ,result= 0;
int sum_of_squares = 0;
int square_of_sum = 0;
for(i=1; i<=RANGE; i++)
{
square_of_sum += i;
power = i * i;
sum_of_squares += power;
}
square_of_sum = square_of_sum * square_of_sum;
if(sum_of_squares > square_of_sum)
{
result = sum_of_squares - square_of_sum;
printf("합의 제곱 (%d) - 제곱의합 (%d)는 %d입니다. \n ", sum_of_squares, square_of_sum, result);
}
else
{
result = square_of_sum - sum_of_squares;
printf("제곱의합 (%d) - 합의제곱 (%d) 는 %d입니다. \n ", square_of_sum, sum_of_squares ,result);
}
return 0;
}
result=0 #제곱의합
result2=0 #합의제곱
for i in range(1,101):
result +=i**2
result2 +=i
result2=result2**2
print('합의제곱-제곱의합:',(result2-result))
#25164150
// =========================================
public static void main(String[] args) {
int[] sum = new int[3];
for (int i = 1; i <= 100; i++) {
sum[0] += (int) Math.pow(i, 2);
}
sum[1] = sum(100);
sum[2] = (int) Math.pow(sum[1], 2);
System.out.println(sum[2] - sum[0]);
}
private static int sum(int i) {
if(i <= 0) {
return i;
} else {
return sum(i-1) + i;
}
}
sum_of_pow =0
pow_of_sum =0
for i in range (1, 101) :
sum_of_pow += pow(i,2)
pow_of_sum += i
result = pow(pow_of_sum,2) - sum_of_pow
print(result)
a = list(range(1,101))
hap = 0
for i in a:
hap += i
haps_sqaure = hap**2
sqaures_hap = 0
for ii in a:
sqaures_hap += ii**2
print(haps_sqaure - sqaures_hap)
public class KimSanghyeop
{
public static void main(String[] args)
{
int f1;
int sum1=0, sum2=0;
for(f1=1;f1<=100;f1++)
{
sum1+=f1*f1;
sum2+=f1;
}
System.out.println("제곱의 합 : "+sum1);
System.out.println("합의 제곱 : "+sum2*sum2);
System.out.println("값 : "+ (sum2*sum2 - sum1));
}
}
#include<stdio.h>
int main()
{
int i;
int SQUARE_ADD = 0;
int ADD = 0;
for (i = 1; i <= 100; i++)
{
ADD += i;
SQUARE_ADD += i * i;
}
printf(" 1부터 100까지의 자연수의 합의 제곱과 제곱의 합의 차이는 %d 입니다.",( ADD*ADD - SQUARE_ADD));
return 0;
}
25164150
sum = 0
mul = 0
for i in range(1, 101):
sum += i
result = sum**2
for i in range(1, 101):
i = i**2
mul += i
print(result-mul)
25164150
public class KimSanghyeop
{
public static void main(String[] args)
{
int f1;
int sum1=0;
int sum2=0;
for(f1=1;f1<=100;f1++)
{
sum1+=f1*f1;
sum2+=f1;
}
System.out.println("제곱의 합 : "+sum1);
System.out.println("합의 제곱 : "+sum2*sum2);
System.out.println("차이 : " +(sum2*sum2 -sum1));
}
}
파이썬으로 풀이함
i = 1
j = 1
x = 0
sum = 0
while i < 101:
x = x + (i * i)
i = i + 1
while j < 101:
sum = sum + j
y = sum * sum
j = j + 1
print(y - x)
int square_Sum(int);
int sum_Square(int);
void main()
{
int num1;
scanf("%d", &num1);
square_Sum(num1);
sum_Square(num1);
printf("%d", sum_Square(num1) - square_Sum(num1));
}
int square_Sum(int x)
{
int sum = 0;
for (int i = 1; i <= x; i++)
{
sum += i * i;
}
return sum;
}
int sum_Square(int x)
{
int sum = 0;
for (int i = 1; i <= x; i++)
{
sum += i;
}
return sum * sum;
}
# project_Euler.py
sum_of_square = sum([x**2 for x in range(1,101)])
square_of_sum = (sum([x for x in range(1,101)]))**2
print(square_of_sum-sum_of_square)
namespace codingdojang__
{
class Program
{
static void Main(string[] args)
{
int sum_total = 0;
int square_total = 0;
for (int sum = 1; sum <= 100; sum++)
{
sum_total += sum;
}
for (int square = 1; square <= 100; square++)
{
square_total += square * square;
}
sum_total = sum_total * sum_total;
if (sum_total < square_total)
{
Console.WriteLine(square_total - sum_total);
}
else if (sum_total > square_total)
{
Console.WriteLine(sum_total - square_total);
}
else
{
Console.WriteLine('0');
}
}
}
}
n=input('수 입력: ');
add=(n*(n+1)/2)^2;%합의 제곱
%제곱의 합
square=0;
for i=1:n
square=square+i^2;
end
%합의 제곱-제곱의 합
fprintf('합의 제곱-제곱의 합: %d\n',add-square);
#include<stdio.h>
#include<math.h>
int sss(int n, int x);
int mmm(int n, int x);
int main(void)
{
int start, end;
printf("시작값과 끝값 입력:");
scanf_s("%d %d", &start, &end);
int a=sss(start,end);
int b=mmm(start,end);
printf("%d",abs(a-b));
return;
}
int sss(int n,int x)
{
int i;
int mul=0;
for (i = n; i <= x; i++)
{
mul = mul + i * i;
}
return mul;
}
int mmm(int n, int x)
{
int i,sum=0;
for (i = n; i <= x; i++)
{
sum = sum + i;
}
return (sum * sum);
}
sum = 0; sq_sum = 0
for rep in range(1, 101): sum += rep
for rep in range(1, 101): sq_sum += rep**2
print(sum**2 - sq_sum)
""" Print the distance """
# square number sum(1 - 100)
sum1 = 0
for i in range(1, 101, 1):
sum1 = sum1 + i**2
# square sum number(1 - 100)
sum2 = 0
for i in range(1, 101, 1):
sum2 = sum2 + i
sum2 = sum2*sum2
print(abs(sum2 - sum1))
sq_sum = 0
sum_sq = 0
for i in range(1,101):
sq_sum += i*i
sum_sq = (sum([i for i in range(1,101)]))**2
print(sum_sq - sq_sum)
def GetDiff(start,end):
a,b=0,0
for i in range(start,end+1):
a+=i*i
b+=i
return b*b-a
print(GetDiff(1,100))
/*C로 작성*/
#include<stdio.h>
int addfirst(int num)
{
int i, sum = 0;
for (i = 1; i <= num; i++)
{
sum = sum + i;
}
sum = sum * sum;
return sum;
}
int squarefirst(int num)
{
int i, sum = 0;
for (i = 1; i <= num; i++)
{
sum = sum + i * i;
}
return sum;
}
void main()
{
int Result = addfirst(100) - squarefirst(100);
printf("%d", Result);
}
sum = 0
mul = 0
for i in range(1, 101):
sum += i
mul += i**2
sum = sum**2
result = abs(sum - mul)
print (result)
public class Problem136 {
public static void main(String[] args) {
int sumofsquare=0;
int sum=0;
for(int i=1;i<101;i++) {
sum+=i;
sumofsquare+=(i*i);
}
System.out.println(sum*sum-sumofsquare);
}
}
static void Main(string[] args)
{
Console.WriteLine("*** 코딩도장 Q136 ***");
int jeHap = 0;
int hapJe = 0;
int tmp = 0;
int ans = 0;
// 마지막 수
int endNum = 100;
// 제곱의 합 구하기
for (int i = 0; i <= endNum; i++)
{
jeHap = jeHap + (int)Math.Pow((double)i, 2);
}
// 합의 제곱 구하기
for (int j = 0; j <= endNum; j++)
{
tmp += j;
}
Console.WriteLine(tmp);
hapJe = (int)Math.Pow(tmp, 2);
ans = hapJe - jeHap;
Console.WriteLine("제곱의 합 : {0}", jeHap);
Console.WriteLine("합의 제곱 : {0}", hapJe);
Console.WriteLine("1부터 {0} 까지 합의 제곱과 제곱의 합의 차이는 {1} 입니다.", endNum, ans);
}
비쥬얼 스튜디오 2017로 작성하였습니다. c++입니다.
#include <stdio.h>
#include <iostream>
using namespace std;
void main() {
int sum1 = 0, sum2 = 0;
int result;
for (int i = 1; i <= 100; i++)
{
sum1 += pow(i, 2);
sum2 += i;
}
sum2 = pow(sum2, 2);
printf("%d", result = sum2 - sum1);
}
package level1;
public class oiler {
public static void main(String[] args) {
int total1 = 0;
int total2 = 0;
int temp = 0;
for(int i =1; i <= 100 ; i++){
total1 += i*i;
temp += i;
}
total2 = temp * temp;
System.out.println(total2 - total1);
}
}
print((sum([y for y in range(101)]))**2-sum([x*x for x in range(101)])) #25,164,150
초심자인 저의 관점에서 보았을때, 문제자체의 난이도가 높지는 않으나 규칙적인 수열의 효율적인 선언을 연습해 보는것에 의의가 있었읍니다.
public class MainClass {
public static void main(String[] args) {
int sum = 0;
int jasum = 0;
for(int i = 1; i <= 100; i++) {
sum += i;
jasum += i*i;
}
int result = (sum*sum) - jasum;
System.out.println(result);
}
}
#include <stdio.h>
int main(){
int positive_integer;
int sum_of_integer = 0;
int sum_of_square = 0;
int square_of_the_sum;
for(positive_integer = 0; positive_integer <= 100; positive_integer++)
{
sum_of_integer = sum_of_integer + positive_integer;
sum_of_square = sum_of_square + (positive_integer*positive_integer);
}
square_of_the_sum = (sum_of_integer*sum_of_integer);
printf("%d",square_of_the_sum - sum_of_square);
return 0;
}
Sum1 = sum([a**2 for a in range(1, 101)])
Sum2 = sum([b for b in range(1, 101)])**2
print(Sum2-Sum1)
Python 3.6
b = 0 # 변수 b 를 정하고
c = 0 # 변수 c 도 정합니다.
for a in range(101): # 반복문을 사용해서
b = b + a * a # 변수 b 에 제곱의 합을 계산하고
c = c + a # 변수 c 에 합만 우선 계산합니다.
c = c * c # 합의 제곱을 계산한 다음
print(c - b) # 합의제곱 - 제곱의 합을 계산해 줍니다.
Made By Highlander
result1, result2 = [], []
for i in range(1, 100 + 1):
result1.append(i**2)
result2.append(i)
a = sum(result1)
b = sum(result2)**2
print(b-a)
L = list(range(1, 101))
squaSum = 0; sumSqua = sum(L)**2
for i in L :
squaSum += i**2
print(sumSqua - squaSum)
t = list(range(1,101))
s1 = 0
for i in range(len(t)):
s1 += (t[i]*t[i])
s2 = sum(t)*sum(t)
print(s2-s1)
Python 3.7
(i,j)-entry가 ixj 인 (100x100)-행렬의 off-diagonal element를 다 더했습니다.
diff = 0
a = [x for x in range(1,101)]
for i in a:
for j in a[:i-1]+a[i:]:
diff += i*j
print(diff)
a=list(range(1,101))
sum_double=sum(a)**2
double_sum=0
for i in a:
double_sum +=i**2
print(sum_double-double_sum)
# Input number
a = int(input())
# define integer variable
sum_0 = 0 # sum of squares
sum_1 = 0 # squares of sum
k = 0
# algorithm
for i in range(1, a+1):
sum_0 += i**2 # sum of squares
for i in range(1, a+1): k += i # squares of sum
sum_1 = k**2
# Output
print(sum_1 - sum_0)
a=0 #합의 제곱을 구하기 위하여 사용
b=0 #제곱의 합을 구하기 위하여 사용
res1=0 #합의 제곱을 저장
res2=0 #제곱의 합을 저장
for i in range(101):
a+=i
if i>=100:
res1=a**2
for i in range(101):
b+=i**2
if i>=100:
res2=b
print("결과는",res1-res2,"입니다")
//1. 1부터 100까지 자연수의 합의 제곱
int n1=0, n2=0;
for(int i=1; i<=100; i++) {
n1 += i;
}
n1 = n1*n1;
//2. 1부터 100까지 자연수의 제곱의 합
for(int i=1; i<=100; i++) {
n2 += i*i;
}
System.out.println(n1-n2);
답 : 25164150
sum1 = 0
sum2 = 0
result = 0
for i in range(1,101):
sum1 = sum1 + i**2
sum2 = sum2 + i
result = abs(sum1-sum2**2)
print(result)
파이썬 https://mathbang.net/628 이 사이트를 참고해서 공식을 구했습니다. 합의 제곱은 (n^4 + 2n^3 + n^2)/4 제곱의 합은 n * (n+1) * (2n+1) / 6 두 개를 빼면 (3n^4+2n^3-3n^2-2*n) / 12
# Square of sum - sum of square
def ssss(n):
return((3*n**4 + 2*n**3 - 3*n**2 - 2*n) / 12)
print(ssss(100))
결과값 25164150
Input two numbers for their sum of squares and square of sum:
1 100
The difference between Square of Sum and Sum of squares:
25164150
package d136_sum_and_square_differ;
import java.util.Scanner;
public class SumSquareDiffer {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Input two numbers for their sum of squares and square of sum:");
int X=sc.nextInt();
int Y=sc.nextInt();
int i, sumofsquares=0, squareofsum=0, sum=0;
for(i=X; i<=Y; i++) {
sumofsquares+=(i*i); //제곱의 합
sum+=i; //합
}
squareofsum=(sum*sum); //합의 제곱
System.out.println("The difference between Square of Sum and Sum of squares:");
System.out.println(squareofsum-sumofsquares);
}
}
public class 자연수의합의제곱과제곱의합의차이 {
public static void main(String[] args) {
int sum1 = 0;
for(int i=1; i<101; i++) {
sum1+=i*i;
}
int sum2 = 0;
for(int j=0; j<101; j++) {
sum2+=j;
}
System.out.println(sum2*sum2-sum1);
}
}
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n,res=0,ans=0,po=0;
cin>>n;
for(int i=1;i<=n;i++){
res+=pow(i,2);
}
for(int i=1;i<=n;i++){
po+=i;
ans=pow(po,2);
}
cout<<ans-res;
}
파이썬 입니다.
def double_diff(n):
double1=sum(list(map(lambda x:x**2,range(1,n+1)))) # 제곱의 합
double2=(sum(list(range(1,n+1))))**2 # 합의 제곱
return double2-double1
double_diff(100) # 결과값 : 25164150
list_num = []
for i in range(100):
list_num.append(i+1)
list_jegob = []
plus_jegob = 0
sum_jegob = 0
for i in range(100):
a = (list_num[i])*(list_num[i])
list_jegob.append(a)
plus_jegob += list_jegob[i]
sum_jegob += list_num[i]
print(sum_jegob*sum_jegob - plus_jegob)
int Distance_Sq_SumSq()
{
int result;
int Sq = 0, SumSq = 0;
for(int i =0; i<100;i++)
{
Sq += (i+1)*(i+1);
SumSq += i+1;
}
SumSq = SumSq * SumSq;
result = SumSq - Sq;
return result;
}
nn, total=0, 0
for n in range(1,101):
nn+=n
n=n*n
total+=n
nn=nn**2
print(nn-total) #25164150
#또는 sum을 이용하여 매우 간단하게
print((sum(list(range(1,101)))**2)-sum(i**2 for i in range(1,101))) #25164150
import math
sum1 = 0
sum2 = 0
for i in range(1, 11):
sum1 += i * i
sum2 += i
print(int(math.pow(sum2, 2)) - sum1)
파이썬 3 입니다. 두 가지 방법으로 풀어봤습니다.
N = 100
우선 N을 정의합니다
--- 첫번째 풀이 --- for 구문을 이용했습니다.
sum_N = 0
sqr_sum = 0
for n in range(1, N + 1):
sum_N += n
sqr_sum += n ** 2
print(sum_N ** 2 - sqr_sum)
--- 두번째 풀이 --- 1부터 N까지를 원소로 가지는 리스트를 먼저 만들고 sum을 이용하여 풀었습니다.
N_list = list(range(1, N + 1))
print((sum(N_list)) ** 2 - sum([i ** 2 for i in N_list]))
Nsquared, Nsumsquared = 0, 0
for i in range(1,101):Nsquared += i*i
for i in range(1,101):Nsumsquared += i
print((Nsumsquared*Nsumsquared) - Nsquared)
public class NumberCalculation {
public static void main(String[] args) {
int sum1 = 0;
int sum2 = 0;
int result = 0;
for(int i=1; i<=100; i++) {
sum1 += (i*i);
}
for(int j=1; j<=100; j++) {
sum2 += j;
}
result = (sum2*sum2) - sum1;
System.out.println("결과값: "+ result);
}
}
max = int(input('Max number: '))
numbers = []
numsquare = []
for i in range(1, max+1):
numbers.append(i)
numsquare.append(i ** 2)
i += 1
sum_sq = 0
sq_sum = 0
for i in range(0, max):
sq_sum += numbers[i]
sum_sq += num_square[i]
i += 1
result = sq_sum ** 2 - sum_sq
result
from functools import reduce
squareOFsum = reduce((lambda x,y : x+y), list(range(1, 101)))**2
sumOFsquare = sum(list(map(lambda x:x**2, list(range(1, 101)))))
print(squareOFsum-sumOFsquare)
def powadd(n):
result =0
for i in range(n+1):
result+=i**2
return result
def addpow(n):
result=0
for i in range(n+1):
result+=i
return result**2
def sub(n):
return addpow(n)-powadd(n)
def ST_TS(num):
result=(sum([i for i in range(num+1)]))**2-sum([i**2 for i in range(num+1)])
return result
print(ST_TS(100))
sum_squ = 0
squ_sum = 0
for i in range(1, 101):
squ_sum += pow(i, 2)
sum_squ += i
sum_squ = pow(sum_squ, 2)
print(abs(sum_squ - squ_sum))
to_val = 100
sum_sqrt = 0
sum = 0
sqrt_sum = 0
for i in range(1, to_val+1):
sum += i
for i in range(1, to_val+1):
sqrt_sum += i ** 2
print("diff val : " +str( ((sum ** 2) - sqrt_sum)))
def square_sum():
# 합의 제곱
sum_square = 0
for i in range(1, 101):
sum_square += i
sum_square = sum_square ** 2
# 제곱의 합
square_sum = 0
for i in range(1, 101):
square_sum += i ** 2
return sum_square - square_sum
print(square_sum())
n=int(input('인풋 넘버 : '))
s1=0
s2=0
for i in range(n+1):
s1+=i*i
s2+=i
s3=s2*s2
print('합의제곱은 %d'%s3)
print('제곱의 합은 %d'%s1)
print(' 차는 ',s1-s3)
public class Q136 {
public static void main(String[] args) {
int sum=0;
int sumS=0; // 합의 제곱
int squa=0; // 제곱의 합
for(int i=1; i<101; i++) {
sum += i;
squa += i*i;
sumS=sum*sum;
}
System.out.println("합의 제곱 - 제곱의 합 : " + (sumS - squa));
}
}
답 25164150
def calc_diff_sum_squared_and_squared_sum():
nums = list(range(1, 101))
sum_squared = sum(nums) ** 2
squared_sum = sum([i * i for i in nums])
return sum_squared - squared_sum
a = []
b = []
for i in range(1,101):
a.append((i*i))
a_mul = sum(a)
for i in range(1,101):
b.append((i))
b_sum = sum(b)*sum(b)
print(b_sum-a_mul)
How_num = int(input("원하는 범위의 숫자를 입력하시오:"))
S_SUM = 0
SUM = 0
for i in range(1,How_num+1):
S_SUM += (i * i)
for i in range(1,How_num+1):
SUM += i
SUM_S = SUM * SUM
ANS = SUM_S - S_SUM
print(ANS)
25164150
파이썬으로 접근하기는 쉬운문제군요!
'''
100까지의 자연수의 합의 제곱과 제곱의 합의 차이
1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합). 1^2 + 2^2 + ... + 10^2 = 385 1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱). (1 + 2 + ... + 10)^2 = 55^2 = 3025 따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다. 그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?
'''
print(sum(range(1,101))**2 - sum([x**2 for x in range(1,101)]))
# result : 25164150
package test;
public class Test{
public static void main(String[] args) {
int a = 0;
int b = 0;
for(int i = 1; i<=100; i++) {
a += i*i;
b += i;
}
System.out.print((b*b)-a);
}
}
a = 0
b = 0
for i in range(1,101,1):
i = i * i
a += i
for i in range(1,101,1):
b += i
b=b*b
print("제곱의 합의 값 : %d\n합의 제곱의 값 : %d\n두 수의 차 : %d"%(a,b,(b-a)))
파린이입니다. 잘 부탁드려요
namespace _60일차_9월30일
{
class MainApp
{
static void Main(string[] args)
{
int SquaredOfSum = 0;
int Temp = 0;
for (int i = 0; i <= 100; i++)
{
SquaredOfSum += i * i;
Temp += i;
}
int SumOfSquared = Temp*Temp;
int result = SumOfSquared - SquaredOfSum;
Console.WriteLine($"Result = {result}");
}
}
}
class GetDiff:
def __init__(self):
self.diff = 0
def calDiff(self,n):
sum1 = 0
sum2 = 0
for i in range(0,n):
sum1 += (i+1)**2
for i in range(0,n):
sum2 += (i+1)
sum2 = sum2**2
self.diff = sum2-sum1
print (self.diff)
a = GetDiff()
a.calDiff(10)
a.calDiff(100)
def square_sum(num):
result = 0
for i in range(1,num+1):
result += i**2
return result
def sum_square(num):
result = 0
for i in range(1,num+1):
result += i
result = result**2
return result
print(sum_square(100)-square_sum(100))
def square_sum(num):
result = 0
for i in range(1,num+1):
result += i**2
return result
def sum_square(num):
result = 0
for i in range(1,num+1):
result += i
result = result**2
return result
print(sum_square(100)-square_sum(100))
plusSquare = 0
squarePlus = 0
for i in range(1,101):
squarePlus += i**2
plusSquare += i
print(plusSquare**2 - squarePlus)
a=0
for i in range(1,101,1):
a=a+i
a=a*a
b=0
for j in range(1,101,1):
b=b+j*j
print("{0} is differce between {1},{2}".format((max(a,b)-min(a,b)),a,b))
sum_sq =sum([x**2 for x in range(101)])
sq_sum = sum([x for x in range(100001)])**2
print(sq_sum-sum_sq)
count_1 = 0
count_2 = 0
for a in range(1, 101):
count_1 = count_1 + a ** 2
count_2 = count_2 + a
print((count_2 ** 2) - count_1)
sum_of_squares=sum(x**2 for x in range(1,101))
square_of_sums=sum(range(1,100))**2
print(sum_of_squares)
print(square_of_sums)
print(abs(sum_of_squares-square_of_sums))
Python code
listNum=list(i for i in range(1,101))
Sum1 = 0
Sum2 = 0
for x in listNum:
Sum1 = Sum1 + (x**2)
Sum2 = Sum2 + x
Sum2 = Sum2**2
print("The difference of Square of Sum minus Sum of Square of each number is {0}".format(Sum2-Sum1))
def sum_square(n):
sum_of_square = 0
sum = 0
for i in range(1, n+1):
sum_of_square += i**2
sum += i
return sum ** 2 - sum_of_square
print(sum_square(100))
python 3.8.7입니다.
>>> a = list(range(1, 101))
>>> sum_square = sum(a) ** 2
>>> square_sum = sum([num ** 2 for num in a])
>>> abs(sum_square - square_sum)
25164150
import math
def f(a, b):
square_sum = sum([math.pow(i, 2) for i in range(a, b+1)])
sum_square = math.pow(sum(range(a, b+1)), 2)
return int(sum_square-square_sum)
if __name__ == '__main__':
print(f(1, 101))
def sub(n):
lst01 = [x*x for x in range(1, n+1)]
lst02 = [x for x in range(1, n+1)]
output = sum(lst02)**2 - sum(lst01)
return output
print(sub(100))
n, s1, s2 = 100, 0, 0
for i in range(0,n):
i += 1
s1 += i**2
s2 = (sum(range(1,n+1)))**2
print(abs(s2-s1))
한 줄로 짜시는게 진짜 대단하네요
plus=0
zegob=0
for i in range(1,101):
plus+=i
for i in range(1,101):
zegob+=i**2
print(abs(zegob-plus**2))
result_sq_sum = 0
result_sum_sq = 0
for i in range(1, 101):
result_sq_sum += i**2
result_sum_sq += i
print(result_sum_sq**2 - result_sq_sum)
def asdf():
sum_1=0
for i in range(1,101):
sum_1 +=i**2
sum_2=0
for i in range(1,101):
sum_2+=i
return sum_1-(sum_2**2)
def func():
i = 1
result_1 = 0
result_2 = 0
sum = 0
while i <= 100:
result_1 += (i ** 2)
sum += i
i += 1
result_2 = sum ** 2
if result_1 >= result_2:
return result_1 - result_2
else:
return result_2 - result_1
print(func())
#codingdojing_expo100
N = 100
sumOfexp = 0
expOfsum = 0
for i in range(1,N+1):
sumOfexp += i**2
expOfsum += i
print(expOfsum**2 - sumOfexp) #25164150
import numpy as np
arr = np.array(range(1, 101))
print(np.power(np.sum(arr), 2) - np.sum(np.power(arr, 2)))
square_hap=0
hap=0
for i in range(1,101):
square_hap+=i**2
for j in range(1,101):
hap+=j
hap=hap**2
print(hap-square_hap)
답은 25164150 입니다
static void square(int x) {
int a = 0, b = 0;
for(int i = 1; i <= x; i++) {
a += i;
}
for(int i = 1; i <= x; i++) {
b += i*i;
}
System.out.println(a*a-b > 0 ? a*a-b : -(a*a-b));
}
public static void main(String[] args) {
square(100);
}
pow_sum1 = 0
sum =0
for i in range(1,101):
pow_sum1 += i**2
for k in range(1,101):
sum +=k
sum_pow = sum**2
result = sum_pow- pow_sum1
print(result)
def sum_square():
A = 0
for i in range(1,101):
A = A + i
return(A**2)
def square_sum():
B = 0
for j in range(1,101):
B = B + j**2
return(B)
X = sum_square()
Y = square_sum()
ans = X - Y
print(abs(ans))
// Rust
fn main() {
let (start, end): (u32, u32) = (1, 100);
let mut total = 0;
let mut square_total = 0;
// iterator를 두 번쓰는 것보다 한 번 쓰는 이득
for i in start..=end {
total += i;
square_total += i.pow(2);
}
total = total.pow(2);
println!("{} - {} = {}", total, square_total, total-square_total);
}
sq=0
n_sq=0
for n in range(1,101) :
sq +=n
n_sq += n**2
#print(n, sq, n_sq)
print('합의 제곱 - 제곱의 합 = ({} - {}) ='.format(sq**2, n_sq),(sq**2)-n_sq)
public class test {
public static void main(String[] args) {
int sumz=0;
int zsum=0;
for(int i=1; i<=100; i++) {
zsum+=(int)Math.pow(i, 2);
sumz+=i;
}
sumz=(int)Math.pow(sumz, 2);
int mi = sumz - zsum;
System.out.println(mi);
}
}
def mulsum(n):
result = n**2
return result
def summul(n):
return n**2
print(summul(sum(range(1,101))) - sum(list(map(mulsum, [x for x in range(1,101)]))))
package com.algorithm.algorithmpractice.dojang;
public class Oiler2 {
public static void main(String[] args) {
int total1 = 0;
for (int i = 1; i < 101; i++) {
total1 += Math.pow(i, 2);
}
int total2 = 0;
for (int i = 0; i < 101; i++) {
total2 += i;
}
int result = 0;
result = (int)Math.pow(total2, 2) - total1;
System.out.println(result);
}
}
자바로 풀었습니다
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("자연수 N을 입력하시오:");
int N = scan.nextInt();
int squareOfSum = 0, sumOfSquare = 0, sum=0;
for(int i=1; i<=N; i++) {
sum += i;
sumOfSquare += Math.pow(i, 2);
}
squareOfSum = (int) Math.pow(sum, 2);
System.out.printf("Square of sum : %d\n", squareOfSum);
System.out.printf("Sum of square : %d\n", sumOfSquare);
System.out.printf("Square of sum - Sum of square : %d", squareOfSum-sumOfSquare);
}
}
sm = pow(sum([ x for x in range(1,101) ]), 2)
ms = sum([ pow(x, 2) for x in range(1,101) ])
print(sm-ms)
파이썬 3.8.5
total_1 = 0
total_2 = 0
for i in range(1,101):
total_1 += pow(i, 2)
total_2 += i
print(pow(total_2, 2)-total_1)
python
#100까지의 자연수의 합의 제곱과 제곱의 합의 차이
sum1 = 0 #제곱의 합
sum2 = 0 #합의 제곱
n=100
for i in range(n+1):
sum1 += i**2
sum2 += i
sum2 = sum2**2
print(sum2-sum1)
package ex;
public class Ex04 {
public static void main(String[] args) {
int sum01 = 0;
int sum02 = 0;
for (int i = 1; i <= 010; i++) {
sum01 += i*i;
sum02 += i;
}
sum02 = sum02 * sum02;
System.out.println(sum02 - sum01);
}
}
Python.
result1=0
result2=0
temp=0
for i in range(1,101):
result1+=i**2 #제곱하여 더함
for j in range(1,101):
temp+=j
result2=temp**2 #모두 더한 후 제곱
print(result1)
print(result2)
print(result2-result1)
sum = 0
squared_sum = 0
for i in range(101) :
sum += i
squared_sum += i ** 2
print(squared_sum - sum)
import numpy as np
intStart=1
intEnd=100
intSum=0
listA=np.arange(intStart,intEnd+1)
listB=listA**2
listC=listA.sum()**2#합의 제곱
listD=listB.sum()#제곱의 합
print(listC-listD)
import numpy as np
print(abs(np.sum(np.array([i**2 for i in range(1,101)]))-(np.sum(np.array([i for i in range(1,101)])))**2))
def sqr_sum():
sqr_sum = 0
sum = 0
for n in range(1,101):
sqr_sum += n ** 2
sum += n
return f"제곱의 합 : {sqr_sum:,}, 합의 제곱 : {sum ** 2:,}, 차 : {sum ** 2 - sqr_sum:,}"