I want to organize a set of integers by putting primes in one subset. For instance:
Input set:
{2,4,6,7,11,6,3}.
Desired Result:
Basic numbers: {2,7,11,3}.
Not prime numbers: {4,6,6}.
This is my reasonable code that ended up with an absurd result:
int main() {
int i,j,n,a=0,b1=0,b2=0;
printf(" Enter the number of elements in the set: ");
scanf("%d",&n);
int integer[n],nonPrime[n],prime[n];
for(i=1;i<=n;i++) {
printf(" Enter #%d element of the set: ",i);
scanf("%d",&integer[i-1]);
}
printf("\n The set is: {");
for(i=1;i<=n;i++) {
printf("%d ",integer[i-1]);
}
printf("}");
for(i=1;i<=n;i++) {
for(j=2;j<=integer[i-1]/2;j++) {
if(integer[i-1]%j==0) {
a=1;
break;
}
}
if(a==1) {
integer[i-1]=nonPrime[i-1];
b1++;
}
else {
integer[i-1]=prime[i-1];
b2++;
}
}
printf("\n Prime numbers: { ");
for(i=1;i<=b2;i++) {
printf("%d ",prime[i-1]);
}
printf("}\n Non prime numbers: { ");
for(i=1;i<=b1;i++) {
printf("%d ",nonPrime[i-1]);
}
printf("} \n");
return 0;
}
//HENG SOK MENG
Output:
Enter the number of elements in the set: 6
Enter
Enter
Enter
Enter
Enter
Enter
The set is: {1 3 5 7 4 6 }
Prime numbers: { 1965421290 1965972381 718360966 32 }
Non prime numbers: { 2686560 718361022 }
Process returned 0 (0x0) execution time : 6.063 s
Press any key to continue.
source
share