用c++编写一个求1000以内的素数及所有素数的个数

如题所述

#include<iostream.h>

int main()

{

cout<<3<<endl;

for(int n=5;n<1000;n=n+2)

{

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

{

if(n%i==0)break;

}

if((i-1)==n/2) cout<<n<<endl;

}

return 0;

}

判断素数,是学习c、c++必接触的一个算法。

// AnswerIntheInternet.cpp : 定义控制台应用程序的入口点。

//#include "stdafx.h"

#include <iostream>

#include <stdio.h>

#include <math.h>

int _tmain(int argc, _TCHAR* argv[])

{

int isPrime(int x);

int temp=2;

for (int i=3;i<=1000;i++)

{

if (isPrime(i))

{

temp++;

printf("%d ",i);

if(temp%10==0)

printf("\n");

float tempm=temp/10;

tempm+=0;

}

}

return 0;

}

int isPrime(int x)

{

for(int i=2;i<=sqrt(1.0*x);i++)

if (x%i==0)

{

return 0;

}

return 1;   

}

扩展资料:

c++语言的特点:

1、支持数据封装和数据隐藏

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。

每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

2、支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

3、支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。

当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。

继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。

参考资料来源:百度百科-c++

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-06-14

#include<iostream>

#include<cstdio>

using namespace std;

int isprime(int n)

{int i;

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

if(!(n%i))return 0;

return n>1;  

}

int main() 

{int i,n=0;

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

if(isprime(i))

{printf("%4d",i);

n++;

}

printf("\n1000以内的素数个数=%d\n",n);

return 0;

}

本回答被网友采纳
第2个回答  2017-06-14

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

int prime(int n) {
int i,flag = 1;
if(n < 2) return 0;
for(i = 2; i <= sqrt(n) && flag; ++i)
flag = n%i;
return flag;
}

int main() {
int i,cnt = 0,n = 1000,sum = 0;
for(i = 1; i <= n; ++i) {
if(prime(i)) {
++cnt;
sum += i;
}
}
printf("count = %d,sum = %d\n",cnt,sum);
return 0;
}

第3个回答  推荐于2017-12-14
#include <iostream>
#include <cmath>
int isPrime(int n)
{
    int i;
    for(i = 2; i <= (int)sqrt(n); i ++)
        if(n%i == 0) return 0;
    return 1;
}
int main()
{
    int n, c=0;
    for(n = 2; n< 1000; n ++)
    {
        if(isPrime(n))
        {
            cout << n << ' ';
            c++;
        }
    }
    cout << endl << "total:" << c<<endl;
    return 0;
}

本回答被网友采纳
第4个回答  2017-06-14
#include<iostream>

const int START=2;
const int NUM=1000;

using namespace std;
int main()
{
int j(0),count(0);
for(int i(0);i!=NUM;i++)
{
j=START;
//如果数字小于2
if(i<START)
continue;
//如果数字等于2,2是素数,所以输出
if(i==START)
{
cout<<i<<endl;
count++;
}
//如果数字大于2,判断i%j是否等于0,0就退出循环,不是素数
while(i%j)
{
j++;
//当两数字相等时,是素数
if(i==j)
{
cout<<i<<endl;
count++;
}
}
}
cout<<"count:"<<count<<endl;
return 0;
}
相似回答