고품격 비주얼 수학 잡지
문제를 함께 푸는 청소년수학 공동 연구프로젝트
문제를 내고 풀고 공유하는 수학 놀이터
수학의 개념을바로잡는 기자단!
수학 수행평가 고민 끝!수학 수행평가 자료실
import math
a=1
s=2
while a<1999999:
a+=2
for b in range(3,math.sqrt(a)//1+1,2):
if a%b==0:
break
if b==math.sqrt(a)//1 or b==math.sqrt(a)//1+1:
s+=a
print(s)
오일러 프로젝트 10번 풀면서 짠 코드입니다. 어디가 잘못되었나요? 참고로 문제는 이백만 이하의 소수의 합을 구하는 것입니다.
전 10번을 이렇게 접근했는데, 답이 나오는데 너무 오래 걸리네요. ㅠㅠ
#include<cstdio> int main(){ int k; int sum=0; for(int i=2;i<=2000000;i++){ k=0; for(int j=2;j<=i/2;j++){ if(i%j==0){ k++; } } if(k==0){ printf("%d ",i); sum=sum+i; } } printf("\n%d끝",sum); return 0; }