C语言:输出1000~2000之间的所有素数,每行输出8个,要求调用求素数函数。

如题所述

#include <stdio.h>

int sushu(int n)

{

    int i;

    for(i=2;i<n;i++)

{

      if(n%i==0)

    return 0;

}

    return 1;

int main ()

{

    int n,m,j=0;

    for(n=1000;n<=2000;n++)

    {   m=sushu(n);

   if(m==1)

       {

printf("%d ",n);

        j++;

        if(j%8==0)

            printf("\n");

        }

    }  

    return 0; 

}

扩展资料:

定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

性质:素数大于等于2 不能被它本身和1以外的数整除。

函数在编程中的定义:

函数过程中的这些语句用于完成某些有意义的工作——通常是处理文本,控制输入或计算数值。通过在程序代码中引入函数名称和所需的参数,可在该程序中执行(或称调用)该函数。

类似过程,不过函数一般都有一个返回值。它们都可在自己结构里面调用自己,称为递归。

大多数编程语言构建函数的方法里都含有函数关键字(或称保留字。

参考资料来源:百度百科-函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-24

思路:定义一个判断素数的函数,接着依次从1000到2000遍历判断,如果是则输出,每输出是8次输出换行。

参考代码:

#include <stdio.h>
int isp(int n){//判断一个数是否是素数 
    int i;
    for(i=2;i<n;i++)
        if(n%i==0) return 0;//不是素数返回0 
    return 1;//是素数返回1 

int main ()
{
    int i,j=0;
    for(i=1000;i<=2000;i++)
    if(isp(i)){//是素数则输出
        printf("%d ",i);
        j++;//统计输出次数
        if(j%8==0) //每输出8次输出换行
            printf("\n");
    }  
    return 0; 
}
/*
运行结果:
1009 1013 1019 1021 1031 1033 1039 1049
1051 1061 1063 1069 1087 1091 1093 1097
1103 1109 1117 1123 1129 1151 1153 1163
1171 1181 1187 1193 1201 1213 1217 1223
1229 1231 1237 1249 1259 1277 1279 1283
1289 1291 1297 1301 1303 1307 1319 1321
1327 1361 1367 1373 1381 1399 1409 1423
1427 1429 1433 1439 1447 1451 1453 1459
1471 1481 1483 1487 1489 1493 1499 1511
1523 1531 1543 1549 1553 1559 1567 1571
1579 1583 1597 1601 1607 1609 1613 1619
1621 1627 1637 1657 1663 1667 1669 1693
1697 1699 1709 1721 1723 1733 1741 1747
1753 1759 1777 1783 1787 1789 1801 1811
1823 1831 1847 1861 1867 1871 1873 1877
1879 1889 1901 1907 1913 1931 1933 1949
1951 1973 1979 1987 1993 1997 1999
*/

第2个回答  推荐于2017-10-11
#include <stdio.h>
#include <math.h>
int sushu(int n)
{
int i,m;
m=sqrt(n+1);
for(i=2;i<=m;i++)
if(n%i==0)
return 0;
return 1;
}

void main()
{
int n,k,h=0;
printf("\n");
for(n=1000;n<=2000;n++)
{
k=sushu(n);
if(k==1)
{
printf("%4d ",n);
h++;
if(h%8==0)
printf("\n");
}
}
}本回答被提问者采纳
相似回答