c语言编程,写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。 帮忙看一下我写的是不

作者&投稿:爱慧 (若有异议请与网页底部的电邮联系)
C语言编程 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。~

#include int isprime(int n) { int i; for (i=2;i<n;i++) if(n%i==0)return 0; return 1; } void main() { int n; printf("请输入一个数:"); scanf("%d",&n); if(isprime(n)) printf("%d是素数
"); else printf("%di不是素数
"); } 追问: 求两个数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数。 回答: 请重开问题

麻烦采纳,谢谢!

先建立一个初始的素数表,例如:100以内的素数数组,用来快速判断是否是素数对于超过100的素数,算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数。
#include
#include
//判断是否为素数的函数
int isPrime(int n)
{
int i=2;
while(i<=(int)sqrt(n))
{
if(n%i == 0)
return 0; //不是素数,直接返回0
else
i++;
}
return 1;
}
int main()
{
int n;
printf("输入一个正整数: ");
scanf("%d",&n);
if(isPrime(n))
printf("%d is a prime number
",n);
else
printf("%d is not a prime number
",n);
return 0;
}

扩展资料;
首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。
命题 1 对于B=36N+1 形数而言。
若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,
则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。
若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,
则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。
参考资料来源:百度百科-质数

#include<stdio.h>
int main(int argc,char**argv)
{
    int sushu(int x);
    int a,m;
    scanf("%d",&a);
    m=sushu(a);//接收判断质数的结果,1为质数,0就不是质数
    if(m==1)
    {
        printf("$d is a prime",a);//输出质数
    }
    else
    {
        printf("%d is not  a prime",a);
    }
 }
 
 int sushu(int x)
 {
     int i;
     for(i=2;i<x;i++)//这个是按照你的思路来的(当然判断质数还有其他方法),不要从1 开始,因为任何整数都能整除1;任何数也能被他本身整除,所以也不要等于x;
     {
         if(x % i ==0)
         {
             return 0;//你的程序中break之后,return不会执行
         }
     }
     if(i == x) return 1;//如果是质数返回1
 }

可能是初学者吧

思路基本上是正确的

但是可能一些语法还没掌握

比如 

1.函数的返回值

2.for循环中break;

3.以及局部变量、全局变量作用域等

只要有耐心,c不难的,肯定能学好



sushu函数中,应该是x%i==0 还有if语句为真,语言执行几条语句? 应该有{}

有问题函数里面应该是:
int i,sushu=0;
for(i=2;i<x;i++)
{
if(x%i==0)
{
sushu=1;break;
}
}
return sushu;

#include"stdio.h"
#include"math.h"
int prime(int n)
{for(int i=2;i<sqrt(n+1);i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{
int n;
scanf("%d",&n);
if(prime(n))
printf("%d是素数 ",n);
else printf("%d不是素数",n);
return 0;
}

#include<stdio.h>
main()
{
int number;
printf("请输入一个正整数:\n");
scanf("%d",&number);
if(prime(number))
printf("\n %d 是素数",number);
else
printf("\n %d 不是素数",number);
}
int prime(number)/*此函数用于差别素数*/
int number;
{
int flag=1,n;
for(n=2;n<number/2 && flag==1;n++)
if(number%n==0)
flag=0;
return(flag);
}


判断一个数是奇数还是偶数用C程序怎么编写
编写算法判断奇偶数 输入3个数判断最大值 闰年的判断 奇数和偶数 其他类似问题2014-06-05 请问在C语言中怎么写一个判断一个数是奇数还是偶数的程序啊? 16 2006-01-04 c语言中判断一个输入的数为偶数还是奇数的程序怎么编写 37 2010-11-15 用C语言编程:输入一个整数,判断这个数是奇数还是偶数。 请...

C语言编程判断输入的一个数是否是5的倍数怎么编写?
C语言编程判断输入的一个数是否是5的倍数,编写方法如下图:C语言的主要特点:简洁紧凑、灵活方便。C语言一共只有40个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最...

C语言编程题:写一个程序,从键盘上输入年份year,判断是否为闰年。。具体...
include<stdio.h> void main(){ int year,b;scanf("%d",&year);b=0;if ( (year%100)==0 ) { if ( (year%400)==0 ) b=1; } \/\/如果能100整除还能被400整除才是 else if ( (year%4)==0 ) b=1; \/\/普通能被4整除即是闰年 printf("%d",year);if ( b==0 ) printf("...

用c语言如何编写一个比较两个数大小的程序
如何只是比较大小的话,直接一个判断就ok了。代码如下:include <stdio.h> int main(){ int a=0,b=0;scanf("%d %d",&a,&b);if(a>b)printf("%d > %d\\n",a,b);else if (a<b)printf("%d < %d\\n",a,b);else printf("相等\\n");return 0;} 分析:定义两个变量,然后输入...

C语言编程,判断一个数是否存在于一个数组中
define _CRT_SECURE_NO_DEPRECATE include<stdio.h> include<malloc.h> include include<stdlib.h> int findarray(int*p,int len,int val);int main(void){ int len; \/\/数组中元素个数 int i=0; \/\/数组元素下标 int val; \/\/要搜索的数 printf("请为一个随机数数组设定元素个数len...

速求c语言编程 给定n个点的坐标,这n个点依次围成一闭合多边形,再给一 ...
程序代码如下(直接套用函数pnpoly):int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy){ int i, j, c = 0;for (i = 0, j = nvert-1; i < nvert; j = i++) { if ( ((verty[i]>testy) != (verty[j]>testy)) && (testx < (vertx[j]...

编程c语言程序,输入一个五位数,判断是否为对称说,如:12321,20202都是对 ...
判断数据\/10000是否等于数据%10,并且(数据%10000)\/1000是否等于 (数据%100)\/10如果这两个条件都满足,则是对称数,否则不是。include "stdio.h"\/\/ void main(void){ int nDec;printf("请输入一个十进制五位整数...\\nnDec=");for(;;){ zhiscanf("%d",&nDec);if(nDec>9999 && nDec<...

用C语言写"输入一个正整数m,判断它是否为素数"的程序。
include<stdio.h> include<math.h> int shu(long unsigned num) \/\/判断一个给定的数num是不是素数 \/\/是返回1,否则返回0 { int t,i;t=sqrt(num)+1;for(i=2;i<t;i++){ if(num%i==0)break;} if(i==t)return 1;return 0;} int main(){ int n;printf("请输入任意一个正整数...

C语言编程从键盘输入一个字符,判断该字符是否为控制字符、空格、数字字...
include<stdio.h> voidmain(){ charch;inta;ch=getchar();if(ch>='a'&&ch<='z')ch='1';if(ch>='A'&&ch<='Z')ch='2';if(ch=='')ch='3';switch(ch){ case'1':printf("xiao\\n");break;case'2':printf("da\\n");break;case'3':printf("空格\\n");break;default:...

shell编程,输入一个字符串,判断是否是数字。
read a if [[ $a =~ \/\\-?[0-9][0-9.]+\/]] ; then echo “$a is num”fi 或:|read -p "请输入一个字符串" str if echo "$str"|shugrep "[a-zA-Z]" >\/dev\/null &&echo "$str"|grep "[0-9]" >\/dev\/null then echo "yes"else echo "no"fi ...

蒲县14788623556: C语言函数判断素数 -
聊所杞药: #include int jugde(int x) { int i; if(x < 2) return 0; for(i = 2; i <= sqrt(x); ++i) if(x%i == 0) return 0; return 1; } int main() { int i; for(i = 101; i < 1000; i+=2) if(jugde(i) == 1) printf("%d ", i); return 0; }

蒲县14788623556: C语言判断一个数是否是素数的函数 -
聊所杞药: 你的想法是没错,但是程序写错了 正确的 for(i=2;iif(n%i==0)return 0; return 1; 代表 for(i=2;i{ if(n%i==0){ return 0; } } return 1; //是在for结束后进行的 而你的.你应该明白了吧,第一次就会return 1跳出.每有全算一遍

蒲县14788623556: C语言 实现一个函数,判断一个数是不是素数 -
聊所杞药: #include#include intfun(int n); int main() { int n; scanf("%d",&n); if(fun*(n)) printf("Yes!\n"); return 0; } int fun(int n) { int i; for(i=2;i if(n%i==0) return 0; return 1; }

蒲县14788623556: C语言编程 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息. -
聊所杞药: #include<stdio.h> int isprime(int n) { int i; for (i=2;i<n;i++) if(n%i==0)return 0; return 1; } void main() { int n; printf("请输入一个数:"); scanf("%d",&n); if(isprime(n)) printf("%d是素数\n"); else printf("%di不是素数\n"); } 追问: 求两个数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数. 回答: 请重开问题麻烦采纳,谢谢!

蒲县14788623556: C语言编程 用函数实现判定某数是否为素数 -
聊所杞药: #include <stdio.h> #include <math.h>#define TRUE 1 #define FALSE 0 void main(){ int n; unsigned char judgePrime(int n); printf("Input a number:\n"); scanf("%d",&n); if (judgePrime(n)==TRUE) { printf("TRUE\n"); } else{ printf("FALSE\n...

蒲县14788623556: 用C语言编写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息! -
聊所杞药: void main() {int i,j;scanf("%d",&i);for(j=2;j if(i==((int)(i/j))*j) break;if(j>=i)printf("%d为素数\n",i);else printf("%d不是素数\n",i); }

蒲县14788623556: c语言,写一个函数,判断该数是不是素数并且输出该素数(函数返回值是素数,不是0或1)? -
聊所杞药: 判断素数最直观的思路是,从2开始到n-1找有没有能被n整除的,没有的话n就是素数,根据数学知识,如果2到根号n范围内没有数能被n整除,n就是素数.#include<stdio.h> int prime(int n) { int i; for(i=2;i*i<=n;i++) { if(n%i==0) //如果n能整除i,n就...

蒲县14788623556: 判断一个数是否为素数 用C语言编程,要求用到函数 -
聊所杞药: #include bool fun(int n)//定义一个函数,返回类型bool { int i; for (i=2;i if (n%i==0) return false;//能被数字本身以及1以外的数字整除,返回falsereturn true;//如果for循环的素数判断通过,返回true } main() { int n; scanf("%d",&n); if (fun(n))//调用函数funprintf("%d是素数\n",n); else printf("%d不是素数\n",n); }

蒲县14788623556: 写一个判断素数的c语言?? -
聊所杞药: void if_sushu(int x) { int i,k; k=sqrt(x+1) for(i=2;i=k+1) printf("%d is a prime muber\n",x); else printf("%d is not a prime muber\n",x); } 可能还需要你仔细调试...

蒲县14788623556: C语言.写一个判定素数的函数,在主函数中输入一个整数,输出是否是素数的信息 -
聊所杞药:#include #include int prime(int m) { int i,n; if(m==1)return 0; n=(int)sqrt((double)m); for(i=2;i<=n;i++) if(m%i==0)return 0;return 1; } void main() {int n;scanf("%d",&n);if(prime(n))printf("%d is a prime.\n",n);elseprintf("%d is not a prime.\n",n); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网