C语言编程,求500以内的全部素数,每行输出10个。可以提高悬赏哦!

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

inline bool IsPrimeNumbers(int n){
if (n < 2) return false;//1既不是合数又不是质数(素数),所以排除,2是最小质数
// 对n开方,目的在于减少循环次数,原理:因数在根的前面都没有,则后面肯定不会有
int k = (int)sqrt((double)n);  

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

int main(){

int count = 0;  // 计数器,记录每行输出了多少个

for (int i = 2; i <= 500;i++)
{
if (IsPrimeNumbers(i)){
printf("%d ", i);
count++;
if (count % 10 == 0) printf("\n");  // 取模 每10个换行
}
}

printf("\n");
system("pause");  // 屏幕暂停
return 1;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-14
#include "stdio.h"
void main()
{
 int a,b;
 int i,n;
 int flag=1;
 int tmp =0;
 printf("请输入上限:");
 scanf("%d",&a);
 printf("请输入下限:");
 scanf("%d",&b);
 
 printf("%d到%d之间的素数为:",a,b);
 for (i=a;i<=b;i++) {
  flag=1;
  for (n=2;n<i;n++) {
   if (i%n==0) {
    flag=0;
   }
  }
  if ((flag==1)&&(i!=1)) {
   printf("%d\t",i);
   tmp ++;
   if(tmp%10 == 0)
       printf("\n");
  }

 }

}

本回答被提问者采纳
第2个回答  2014-10-27
#include<stdio.h>
int prime(int n);
int main(void)
{
int i,k=0;
for(i=2;i<=500;i++)
{
if(prime(i)){
printf("%4d",i);
k++;
if(k%10==0)
printf("\n");
}
}
printf("\n");
return 0;
}
int prime(int n)
{
int i;
if(n==1&&n==0)
return 0;
for(i=2;i<=n/2;i++)
if(n%i==0)
return 0;
return 1;
}
第3个回答  2014-10-27
编一个循环嵌套,外层识别素数,内层控制输出十个一行
相似回答