c语言501到1000之间有几个素数,并输出所有素数

如题所述

#include <stdio.h>
#include <math.h>
//判断整数是否为素数
int isPrime(int n)
{
    int i;
    for(i=2;i<=(int)sqrt(n);i++) //遍历从2~n的平方根向下取整
        if(n%i == 0)  //如果有i能被n整除,则n不是素数,返回0,否则返回1
            return 0;
    return 1;
}
//编写测试主函数
int main()
{
int i,count;
for(i=501,count=0;i<1000;i++) //i初始化为501,count初始化为0
{
if(isPrime(i))  //调用素数判断函数
{
printf("%d ",i);
count++;
if(count%10 == 0)
printf("\n");  //每输出10个便换行
}
}
printf("\n501到1000之间有%d个素数\n",count);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-06
#include <iostream>

using namespace std;
int prim[1230]={2,3};
void prime(void)
{
int tally=2;
int i,j,flag;
for(i=5;i<10000;i+=2)
{
for(j=0,flag=1;prim[j]*prim[j]<=i;j++)
if(i%prim[j]==0) flag=0;
if(flag)
{
prim[tally]=i;
tally++;
}
}
return;
}
int main(void)
{
prime();
int prime_count=0;
int i=0;
for(;i<1000&&prim[i]<1000;i++)
{
if(prim[i]<500)
continue;
else
{
prime_count++;
cout<<prim[i]<<endl;
}
}
cout<<"从500到1000共有"<<prime_count<<"个素数"<<endl;
return 0;
}

你把头文件、输入输出改一下就成纯c了,

一共有73个素数
503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641

643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773

787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929

937 941 947 953 967 971 977 983 991 997
第2个回答  2014-06-06
#include<stdio.h>
void main()
{
    int i,j,count=0;
    for(i=501;i<1000;i++)
    {
        for(j=2;j<=i/2;j++)
            if(i%j==0)
                break;
            if(j>i/2)
                count++,printf("%d ",i);
    }
    printf("\n%d个素数\n",count);
}

本回答被提问者和网友采纳