C语言判断素数

如题所述

第1个回答  2018-12-10
#include<stdio.h>
int isSuShu(int num){
int i,count=0;
for(i=2;i<=num;i++){
if(num%i==0){
count++;
}
}
if(count==1){
return 1;
}else{
return 0;
}
}
void main(){
int num;
printf("请输入一个数:")
scanf("%d",&num);
if(isSuShu(num)==1){
printf("这个数是一个素数!");
}else{
printf("这个数不是一个素数!");
}
}
第2个回答  2020-03-26
第3个回答  2020-02-19
第4个回答  2018-12-10
#include <stdio.h>
#include <stdbool.h>
  
int main(int argc, char const *argv[])
{
    unsigned long num;
    unsigned long div;
    bool isPrime;
  
    while (scanf("%lu", &num) == 1)//从终端输入一个数,为无符号双精度。成功输入scanf返回1
    {
        for (div = 2, isPrime = true; (div * div) <= num; div++)//一个非素数数的最小公约数,必定小于等于其开根号
        {
            if (num % div == 0)//判断是否被整除
            {
                if ((div *div) != num)//判断是否为平方数
                    printf("%lu is divisible by %lu and %lu.\n",num,div,num/div);
                else
                    printf("%lu is divisible by %lu.\n",num,div);
                isPrime = false;
            }
        }
        if (isPrime)
            printf("%lu is prime.\n", num);
    }
  
    return 0;
}