用C语言编程“写一个判素数的函数,在主函数输入一个整数,输出是否王王素数的信息。。

用C语言编程“写一个判素数的函数,在主函数输入一个整数,输出是否王王素数的信息。。,第1张

素数判断有很多种方法。

以最基础的根据数学定义判断素数方式为例,判断素数代码可以写成

#include <mathh>

int is_prime(int n)

{

    int i;

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

        if(n%i == 0)return 0;//存在除1和本身外的其它因子,不是素数,返回0

    return 1;//正常退出循环,则为素数。

}

这样,只需要在主函数中,读入整数,并调用该函数进行判断,根据结果输出即可。

#include <stdioh>

int main()

{

    int n;

    scanf("%d",&n);//输入数值。

    if(is_prime(n))printf("%d是素数\n",n);

    else printf("%d不是素数\n",n);//输出结果。

    

    return 0;

}

① 代码:

#include <iostream>

using namespace std;

int isPrime(int n);

int main(int argc, char const argv[])

{

  int n, i, sum;

  sum = 0;

  for (int i = 100; i <= 500; ++i) {

    if ( isPrime(i) ) 

      sum += i;

  }

  cout << "The sum of all primes between 100 and 500 is " << sum << endl;

    

  return 0;

}

int isPrime(int n)

{

  int i;

  if (n < 2) return 0;

    if (n == 2) return 1;

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

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

     return 1;

}

② 运行:

The sum of all primes between 100 and 500 is 20476

#include<iostream>

using namespace std;

int isPrime(int t);

int main()

{

int x,y;

cout<<"请输入一个范围,用空格隔开:";

cin>>x>>y;

if(x>y)

cout<<"请输入正确的范围"<<endl;

if(x<=2)

cout<<"2 ";

if(0==x%2)

x++;

for(;x<=y;x+=2)

if(isPrime(x)==1)

cout<<x<<" ";

return 0;

}

int isPrime(int t)

{

if(t<2)

return 0;

for(int i=2;i<t;i++)

{

if(t%i==0)

return 0;

}

return 1;

}

#include<stdioh>

#include<mathh>

int  prime(int a,int b)//求出整数a-b范围内的所有素数

{

int i=2,j,n;

for(j=a;j<=b;j++)

{

n=sqrt(j)+1; //j的平方数+1

i=2;

while(i<n)  

   {

   if(j%i==0) //整除,退出循环

break;

i++;

}

  if(i==n) //非整除退出循环,i肯定等于n

printf("%d ",j);  //j是素数,输出

}

}

int main() 

int a,b; 

scanf("%d%d",&a,&b); //输入整数范围a-b

prime(a,b);

return 0;

}

c++,数组a[10]是随便写的,按需要改或从输入得数据

#include <iostream>

#include <mathh>

using namespace std;

bool ifp(int x)    //该函数用来判断一个数是否是素数

{

    int n=0;

    int k=(int)sqrt(x);

    for(int i=2;i<=k;i++)

    {

        if(x%i==0) break;

    }

    if(i>k) return 1;

    else return 0;

}

int main()

{

    int i,a[10]={71,23,94,16,105,68,3,4,34,7};    //数组随便定义的

    for(i=0;i<10;i++)

    {

        if(ifp(a[i]))

       {

            cout<<a[i]<<" ";

        }

    }

    cout<<endl;

    return 0;

}

输出是否素数的信息的源代码如下:

#include <stdioh>

#include <stdboolh>

bool prime(int x){

if (2 > x ) {

return false;

}

for (int i = 2; i < x ; i++) {

if (0 == x % i ) {

return false;

}

}

return true;

}

int main(){

for (int i = 2; i < 100; i++) {

if (prime(i)) {

printf("%d ",i);

}

}

printf("\n");

return 0;

}

扩展资料

1、函数的使用可以身故重复代码的编写。

2、函数使得程序更加模块化,有利于程序的阅读修改和完善。

3、素数就是没有因子的数,只能被1和本身整除,所以我们就可以用循环解决,循环用于从2到他的根式判定是否有其他数可以整除它,有就跳出循环。

C语言程序

#include <stdioh>

#include <mathh>

int prime(int x)

{

int i;

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

if(x%i==0)return 0;

return 1;

}

void main()

{

int n,i,j=0;

printf("n:");

scanf("%d",&n);

printf("小于等于%d的素数:\n",n);

if(n>2)

{

printf("%4d",2);

j++;

}

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

if(prime(i)==1)

{

printf("%4d",i);

if(j!=0&&++j%10==0)

printf("\n");

}

printf("\n");

}

代码资料:

#include "stdioh"

int prime(int n){//素数判断

int i;

if(n>2 && !(n&1) || n<2)

return 0;

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

if(!(n%i))

return 0;

return n;

}

int main(int argc,char argv[]){

int n,s;

for(s=0,n=2;n<1000;n += n!=2 2 : 1)

s+=prime(n);

printf("The result is %d\n",s);

return 0;

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12171321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存