FIRST 프로그램소수
#include<stdio.h>
void main()
{
int n,c;
printf("enter a numb");
scanf("%i", &n);
for(c = 2; c <= n; c++){
if(n % c == 0)
break;
}
if(c == n)
printf("\nprime\n");
else
printf("\nnot prime\n");
getchar();
}
두 번째 프로그램은
#include "stdio.h>
int main()
{
printf("Enter a Number\n");
int in, loop, rem, chk;
scanf("%d",&in);
for (loop = 1; loop <= in; loop++){
rem = in % loop;
if(rem == 0)
chk = chk +1;
}
if (chk == 2)
printf("\nPRIME NUM ENTERED\n");
else
printf("\nNUM ENTERED NOT PRIME\n");
getchar();
}
제 2 회 프로그램이 작동하지만, 첫 번째는 내 친구가 쓴 하나, 프로그램이 그것을 확인에서 잘 보이지만, 우리가 들어서서 첫 번째 프로그램의 if
상태가 모든 입력 아래에 사실이라는 것을 알았습니까? 여기에 논리적 오류가 무엇인지 알려주세요. ......
비효율적 인 알고리즘에 대한 코멘트가 없습니다. 'scanf()'는'n '이 아닌'n '의 주소 *가 필요합니다 ('n '이 아님). – WhozCraig