一、判断一个数是否为素数
要求:输入一个大于1的整数,判断其是否为素数,是则输出Yes,否则输出No
样例输入:79
样例输出:No
实现代码:
#include <stdio.h>
#include <math.h>
bool Judge(int n){
if(n<=1) return false;
int mid=(int)sqrt(n)+1;
for(int i=2;i<mid;i++){
if(n%i==0) return false;
}
return true;
}
int main(int argc, char *argv[])
{
int n;
while(scanf("%d",&n)!=EOF){
puts(Judge(n)? "Yes":"No");
}
return 0;
}
测试输出:
二、输出特定范围的素数
要求:输入一个整数n(2<=n<=10000),输出2~n之间满足,个位数为1的所有素数
样例输入:100
样例输出:11 31 41 61 71
实现代码:
#include <stdio.h>
int prime[10000];
int primeSize;
bool mark[10001];
void Init(){
for(int i=0;i<=10000;i++){
mark[i]=false;
}
primeSize = 0;
for(int i=2;i<=10000;i++){
if(mark[i]==true) continue;
prime[primeSize++] = i;
for(int j=i*i;j<=10000;j+=i){
mark[j]=true;
}
}
}
int main(int argc, char *argv[])
{
Init();
int n;
while(scanf("%d",&n)!=EOF){
bool isOutput=false;
for(int i=0;i<primeSize;i++){
if(prime[i]<n&&prime[i]%10==1){
if(isOutput==false){
isOutput=true;
printf("%d",prime[i]);
}else{
printf(" %d",prime[i]);
}
}
}
if(isOutput==false){
printf("-1\n");
}
}
return 0;
}
测试输出: