C语言 函数题 想了解代码或思路

img


#include <stdio.h>

int isPrime(int x){
    if(x == 1) return 0;
    int i;
    for(i = 2;i*i <= x;i++){
        if(x % i == 0) return 0;
    }
    return 1;
}

int main()
{
    int i,n,cnt = 0;
    scanf("%d",&n);
    for(i = 1;i <= n;i++){
        if(isPrime(i)){
            printf("%d ",i);
            cnt ++;
        }
    }
    printf("\n共有%d个素数\n",cnt);
    return 0;
}
#include<stdio.h>

bool isPrime(int n)
{
    if (n==1)
        return false;
    for(int i=2;i<n;i++){
        if (n%i==0)
            return false;
    }
    return true;
}

int main()
{
    int n;
    int count=0;
    printf("输入一个整数:"); 
    scanf("%d",&n);
    
    for(int k=1;k<n;k++)
        if (isPrime(k)){
            count++;
            printf("%d",k);
            if (count%10==0)
                printf("\n");
            else
                printf("\t");
        }
    printf("\n1到%d之间的素数共有:%d个。\n",n,count);
    return 0;
}

输入一个整数:100
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
1到100之间的素数共有:25个。