C语言,定俩个数 判断在这俩个数之间有多少素数,并按每行5个数打印输出

如题所述

#include <stdio.h>
#include <math.h>
int isPrime(int n)
{
if (n <= 1) return 0;
if (n % 2 == 0) return n == 2;
int m = sqrt(n);
for (int i = 3; i <= m; i += 2)
if (n % i == 0) return 0;
return 1;
}
int main()
{
int a = 1, b = 100, cnt = 0;;
for (int i = a; i <= b; i++)
{
if (isPrime(i))
{
if (cnt && cnt % 5 == 0)
printf("\n");
printf("%d ", i);
cnt++;
}
}
printf("\n");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-05
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
    if( argc < 3 )
    {
         printf("请输入两个数字计算之间的素数\n");
         return 0;
    }

    printf("%s~%s之间的素数如下:\n", argv[1], argv[2]);
    int a = atoi(argv[1]);
    int b = atoi(argv[2]);

    int i ;
    int count = 0;
    for ( i = a; i < b; i++ )
    {
        int j ;
        for( j = 2; j < i; j++ )
        {
            if( i % j == 0 ) break;
        }

        if( j == i )
        {
            count++;
            printf("%5d,", i);
            if( count % 5  == 0 )printf("\n");
        }
    }

    return 0;
}