def fac(n): result =1; for i in range(2,n+1): result*=i; return result; print fac(500);
하....................
지금까지 C언어 배열에 숫자 하나씩 넣어가면서 덧셈함수 만들고 곱셈함수 만들던 일이 모두 헛수고가 되어버렸어.
이런 슙라
파이썬 어떻게 배우나요??????????
def fac(n): result =1; for i in range(2,n+1): result*=i; return result; print fac(500);
오랜만에 글 써보네요.
미안하지만 오늘 글은 모두 아는 소수 판단 알고리즘입니다. ㅈㅅㅈㅅㅈㅅ
소수 : 1과 자신 외에는 나누어 떨어지는 정수가 없는 양의 정수.
소수의 정의만 보면 2부터 n-1까지 나누어보아서 나누어지지 않으면 소수 나누어지면 소수가 아니라고 할 수 있습니다.
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)
return 0;
return 1;
}
int prime(int n)
{
int i, sqrn;
sqrn = (int)sqrt(n);
for (i = 2; i <= sqrn; i++)
if (n % i == 0)
return 0;
return 1;
}
main()
{
int *arr;
int i,j;
arr=(int *)calloc(101,sizeof(int));//0부터 100까지 배열생성;
for(i=2;i<=100;i++)
{
if(arr[i]==1)
continue;
j=i+i;
while(j<=100)
{
arr[j]=1;
j+=i;//i의 배수로 증가
}
}
for(i=2;i<=100;i++)
if(arr[i]==0)
printf("%d ",i);
}
참고로, sqrt(n)까지 루프를 돌릴 때 홀수만 돌리면 됩니다.
짝수는 어짜피 2x홀수이니까요.
오랜만에 보니 반갑네요.
아리스토테네스의 체에서 소수 i를 찾아서 i의 배수를 지울때 2i 부터 돌리는데 사실 i*i부터 돌려도 됩니다. 왜 그런지는 직접 해보시면..;;
버블정렬.
저음엔 이거만 있는 줄 알았는데.
지금은 GG상태.
| Z | F | A | N | T | A |
| F | Z | A | N | T | A |
| F | A | Z | N | T | A |
| F | A | N | Z | T | A |
| F | A | N | T | Z | A |
| ... | ... | ... | ... | ... | ... |
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
int main()
{
int a[100];
int start,end;
int max,min;
int count,count2;
int temp;
srand((unsigned)time(NULL));
printf("시작 : ");
scanf("%d",&start);
printf("종료 : ");
scanf("%d",&end);
min=end;
max=start;
printf("정렬 전\n");
for(count=0;count<20;count++)
{
a[count]=rand() % (end - start + 1) + start;
printf("%3d",a[count]);
}
/*여기부터*/
for (count = 20-1; count > 0 ; count--)
{
for (count2 = 1; count2 <= count ; count2++)
{
if (a[count2-1] > a[count2])
{
temp = a[count2-1];
a[count2-1] = a[count2];
a[count2] = temp;
}
}
}
/*여기까지 거품정렬입니다.*/
printf("\n정렬 후\n");
for(count=0;count<20;count++)
{
printf("%3d",a[count]);
}
getch();
return 0;
}
버블소트 == 거품정렬
가끔..한글로 바꿔 부르면 재밌게 들리는때가 있는거 같아요ㅎㅎ
웃고가요~