#include<stdio.h>
#include<omp.h>
main()
{
int prime[1000],i,j,n;
printf("\nIn order to find prime numbers from 1 to n, enter the value of n:"); for(i=1;i<=n;i++)
{
prime[i]=1;
}
prime[1]=0;
for(i=2;i*i<=n;i++)
{
/* multi-threading to remove multiples of prime number i
from the list (array) */
#pragma omp parallel for
for(j=i*i;j<=n;j=j+i)
{
if(prime[j]==1)
prime[j]=0;
}
}
printf("\nPrime numbers from 1 to %d are\n",n
); for(i=2;i<=n;i++)
{
if(prime[i] == 1)
{
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8b21wLmg+Cm1haW4oKQp7CiAgICBpbnQgcHJpbWVbMTAwMF0saSxqLG47CiAgICBwcmludGYoIlxuSW4gb3JkZXIgdG8gZmluZCBwcmltZSBudW1iZXJzIGZyb20gMSB0byBuLCBlbnRlciB0aGUgdmFsdWUgb2YgbjoiKTsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBwcmltZVtpXT0xOwogICAgfQogICAgcHJpbWVbMV09MDsKICAgIGZvcihpPTI7aSppPD1uO2krKykKICAgIHsKLyogbXVsdGktdGhyZWFkaW5nIHRvIHJlbW92ZSBtdWx0aXBsZXMgb2YgcHJpbWUgbnVtYmVyIGkKZnJvbSB0aGUgbGlzdCAoYXJyYXkpICovCiAgICAjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3IKICAgIGZvcihqPWkqaTtqPD1uO2o9aitpKQogICAgewogICAgICAgIGlmKHByaW1lW2pdPT0xKQogICAgICAgIHByaW1lW2pdPTA7CiAgICB9Cn0KICAgIHByaW50ZigiXG5QcmltZSBudW1iZXJzIGZyb20gMSB0byAlZCBhcmVcbiIsbik7CiAgICBmb3IoaT0yO2k8PW47aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldID09IDEpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiVkXHQgIixpKTsKICAgICAgICB9CiAgICB9CnByaW50ZigiXG4iKTsKfQ==