소수 판별 프로그램!!!!
큰길
질문 제목 : 소수 판별1 ~100까지2의배수 , 3의 배수 ,6의 배수 , 2의배수도 3의 배수도 아닌수 , 그중에 소수 구하는 프로그램입니다.
다른거 다 구현햇는데 마지막 소수 구하는 부분에서 자꾸 1이 추가됩니다 ㅠㅠ 1은 소수가 아닌데 말이죠 제 실력으로는 아무리 찾아봐도 어디가 잘못된지 모르겠습니다 도와주세요질문 내용 :
#include stdio.h
int idontknow ( int );
int j,k,a,b,c;
int main()
{
int num[100];
int i, y;
int z = 0;
int d = 0;
int e = 0;
for ( i = 0; i 100; i++ ) // 1부터 100까지
num[i] = i+1;
for ( i = 0; i 100; i++ ) // 2의 배수
{
if (!(num[i]%2))
j++;
}
printf( 2의 배수 : %d개\n, j );
for ( i = 0; i 100; i++ ) // 3의 배수
{
if (!(num[i]%3))
k++;
}
printf( 3의 배수 : %d개\n, k );
for ( i = 0; i 100; i++ ) // 6의 배수
{
if (!(num[i]%6))
a++;
}
printf( 6의 배수 : %d개\n, a );
for ( i = 0; i 100; i++ ) // 2의배수도 아니고 3의배수도 아닌 수
{
if((num[i]%2) && (num[i]%3))
{
b++;
}
}
printf( 2의 배수도 아니고 3의 배수도 아닌 수 : %d개\n , b);
for ( i = 0; i 100; i++ ) // 2의배수도 아니고 3의배수도 아닌 수 직접 출력하기
{
if((num[i]%2) && (num[i]%3))
{
printf( %d , num[i] );
}
}
printf( \n);
for ( i = 0; i 100; i++ ) // 그 중의 소수
{
if((num[i]%2) && (num[i]%3))
{
if ( idontknow(num[i]) )
c++;
}
}
printf( 그 중 소수 : %d개\n , c);
for ( i = 0; i 100; i++ ) // 그 중의 소수 출력하기
{
if((num[i]%2) && (num[i]%3))
{
if ( idontknow(num[i]) )
{
printf( %d , num[i] );
}
}
}return 0;
}
int idontknow ( int a ) // 소수 판별 함수
{
int i, j = 0;
for ( i = 2; i a; i++ )
{if (a%i == 0 )
if ( a == i )
return 1;
else
return 0;
}
}