判断素数
用isPrime标记素数
#include<stdio.h>
//判断素数
int main(){
int x;
printf("请输入整数:");
scanf("%d",&x);
int i;
int isPrime=1;//x若是素数则=1,做不是素数则=0
for(i=2;i<x;i++){
if(x%i==0){//若有除了1和本身外可以被整除的数
isPrime=0;
break;//则x是素数,break退出整个for循环
}
}
if(isPrime==1){
printf("是素数\n");
}
else{
printf("不是素数\n");
}
return 0;
}
不用isPrime标记素数
#include<stdio.h>
//判断素数
int main(){
int x;
printf("请输入整数:");
scanf("%d",&x);
int i;
for(i=2;i<x;i++){
if(x%i==0){//若有除了1和本身外可以被整除的数
break;//则x是素数,break退出整个for循环 ,此时i还没有遍历完i<x
}
}
if(i<x)
{
printf("不是素数\n");
}
else
{
printf("是素数\n");
}
return 0;
}
输出100以内的素数
#include<stdio.h>
//判断素数
int main(){
int x;
for(x=2;x<100;x++){
int i;
int isPrime=1;//x若是素数则=1,做不是素数则=0
for(i=2;i<x;i++){
if(x%i==0){//若有除了1和本身外可以被整除的数
isPrime=0;
break;//则x是素数,break退出整个for循环
}
}
if(isPrime==1){
printf("%d ",x);
}
}
return 0;
}
输出前50个素数
#include<stdio.h>
//判断素数
int main(){
int x;
int cnt=0;//素数计数
for(x=2;cnt<50;x++){
int i;
int isPrime=1;//x若是素数则=1,做不是素数则=0
for(i=2;i<x;i++){
if(x%i==0){//若有除了1和本身外可以被整除的数
isPrime=0;
break;//则x是素数,break退出整个for循环
}
}
if(isPrime==1){
printf("%d ",x);
cnt++;
}
}
return 0;
}