素数1:
#include<stdio.h>
#include<math.h>
int Judge(int n)
{
int i, k;
if (n == 0 || n == 1)
return 0;
k = sqrt(n);
for (i = 2; i <= k; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
int main ()
{
int n;
while (scanf("%d", &n) != EOF)
{
if (Judge(n))
printf("Yes
");
else
printf("No
");
}
}
素数2:(输入一个整数n(1<=n<=1000000)以EOF结束(大约有100w组数据))
# include <stdio.h> # define N 1000010 int a[N] = {1, 1}; void prime(int a[]) { int i, j; for (i = 2; i < N; i++) { if (a[i] == 0) { for (j = i + i; j < N; j+=i) a[j] = 1; } } } int main () { prime(a); int n; while (scanf("%d", &n) != EOF) { if (a[n] == 0) printf("Yes
"); else printf("No
"); } return 0; } 素数3:(输入一个数N(1<=N<=10^12)以EOF结束(大约1W组数据))
# include <stdio.h>
# include <math.h>
# define N 1000001
int a[N] = {1, 1}, b[N], k;
void prime()
{
for(int i = 2; i < N; i++)
{
if(a[i] == 0)
{
b[k++] = i;
for(int j = i + i; j < N; j += i)
a[j] = 1;
}
}
}
int judge(long long n)
{
if(n == 1 || n == 0)
return 0;
# include <math.h>
# define N 1000001
int a[N] = {1, 1}, b[N], k;
void prime()
{
for(int i = 2; i < N; i++)
{
if(a[i] == 0)
{
b[k++] = i;
for(int j = i + i; j < N; j += i)
a[j] = 1;
}
}
}
int judge(long long n)
{
if(n == 1 || n == 0)
return 0;
for(int i = 0; (long long)b[i] * b[i] <= n; i++)
if(n % b[i] == 0) //对b[i]取余
if(n % b[i] == 0) //对b[i]取余
return 0;
return 1;
}
int main()
{
prime();
long long n;
while(scanf("%lld", &n) != EOF)
{
if(judge(n))
printf("Yes ");
else
printf("No ");
}
return 0;
}
return 1;
}
int main()
{
prime();
long long n;
while(scanf("%lld", &n) != EOF)
{
if(judge(n))
printf("Yes ");
else
printf("No ");
}
return 0;
}