输入一个数
判断是否为素数
#include <stdio.h>
#include <stdbool.h> //使用bool的头文件
int main(int argc, char *argv[]) {
int n,i;
bool isPrime=true;//true表示素数 逻辑型:true:1 false:0
scanf("%d",&n);
for(i=2;i<n;i++)//可改为i<n&&isPrime
if(n%i==0)
{
isPrime=false;
}
if(isPrime)
printf("su");
else
printf("busu");
return 0;
}
效率高:
#include <stdio.h>
#include <stdbool.h> //使用bool的头文件
int main(int argc, char *argv[]) {
int n,i;
bool isPrime=true;//true表示素数 逻辑型:true:1 false:0
scanf("%d",&n);
for(i=2;i<=sqrt(n)&&isPrime;i++)//若n=a*b,a<根号n<b
if(n%i==0)
{
isPrime=false;
}
if(isPrime)
printf("su");
else
printf("busu");
return 0;
}
不使用bool头文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<sqrt(n);i++)
if(n%i==0)
break;
if(i>sqrt(n))//素数
printf("su");
else
printf("busu");
return 0;
}
若n为素数,则i达到sqrt(n)后,加一跳出循环,则符合i>sqrt(n)。