팩토리얼구할때
불꾼
질문 제목 :
스택오버플로우라는데
이것이 왜 일어나는거죠
질문 내용 :
일단 팩토리얼 계산하는 건데요 뭐 int를 쓴데다 pow리턴형이 long이니까 12!까지밖에 안구해 지긴 하지만..
저렇게 1~n까지의 수중 소수를 먼저 구하고 그걸로 소인수분해해서 소인수 거듭제곱을 모두 곱하는 식으로 했는데요
num과 size에 십만까지는 되는데 백만부터는 스택오버플로우라고 에러가 나네요
어찌된 걸까요그리고 저기서 팩토리얼을 제대로 나타내려면 자료형을 따로 만들어야 할듯한데 어떻게 하죠? 관련 자료들이라도 좀 갈켜줘요
#include stdio.h
#include math.h
#define num 1000000
#define size 1000000
int a[size];
int r[size];
void getprime()
{
int z=0;
for(int k=0; ksize; k++)
{
a[k]=r[k]=0;
}
static int prime[num+1];
int i,j,m,limit;
for(i=0; i=num; i++) prime[i]=1;
limit= (int)sqrt( num);
for( i=2; i=limit; i++)
{
if( prime[i] == 1)
{
j= 2;
for(m= j*i; m= num; m=j*i)
{
prime[m]=0;
j++;
}
}
}
for(i=2; i=num; i++)
if( prime[i]== 1){
a[z]=i;
z++;
}
}
int main()
{
unsigned long fact=1;
int cnt=0;
int b[num];
for (int w=0; wnum; w++)
{
b[w]=w+1;
}
getprime();
for (int e=0; esize; e++)
{
if(a[e]==0)
continue;
else
cnt++;
}
for(int y=0; ynum; y++)
{
while(1)
{
for(int u=0; ucnt; u++){
if(b[y]%a[u]==0){
b[y]=b[y]/a[u];
r[u]++;
}
if (b[y]==1)
break;
}
if (b[y]==1)
break;
}
}
for(int o=0(int o=0; ocnt; o++)
{
fact*=pow(a[o],r[o]);
}
printf(%d,fact);
return 0;
}
-
쇼코홀릭
소수를 구해서 소인수분해 하는 겁니다.
-
딥레드
소수를 왜 구하죠?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |
2691510 | sizeof 연산자 질문입니다 (2) | 종달 | 2025-04-14 |
2691483 | 파일 오픈시 에러 질문드립니다. (2) | 호습다 | 2025-04-14 |
2691450 | [visual c++ 툴]기초 질문 (3) | 해긴 | 2025-04-13 |