在主函数中通过循环调用isprime()函数输出300—500之间的素数,每输出10个素数后换行。isprime()定义在前,主函数在后。
#include<stdio.h>
int isprime(int n)
{
int i;
for(i=2;i<=n-1;i++)
if(n%i==0)
break;
if(i<n)
return 0;
else
return 1;
}
int main()
{
int isprime(int n);
int n,p,j=0;
for(n=300;n<=500;n++)
{
p=isprime(n);
if(p==1)
{
printf("%4d",n);
j++;
if(j%10==0)
printf("\n");
}
}
return 0;
}
这上面的为什么 i<n 就返回0呢?i 不是本来就要比n小才成立么?为什么反而不是素数?
int isPrime(int num) {
int divisor = 3;
int testLimit = num;
if (num < 2)
return 0;
if ( num < 4 )
return 1;
if (num % 2 == 0)
return 0;
while ( testLimit >= divisor )
{
if ( num % divisor == 0 )
return 0;
testLimit = num / divisor;
divisor += 2;
}
return 1;
}
return的用法:
return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。
函数的定义一般是这样的,例如:
int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
...//省略函数体内容
return b;//b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
int addOne(int b)
{
return b+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回
调用时这样:
int result=addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式
以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)
但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如void print()//括号中为空表示无传递参数、
{
printf("a");
printf("b");
return;//函数执行到此处结束
printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"
应该是因为使用了break语句,作者想来想去就写出来这种神码了。 不用管它,你理解的是对的,它的代码改一下 可以简单些。如下! 没来来 0x30吧玩
!!!!谢谢!!!
本回答被提问者采纳\/*1、 编写函数 int IsPrime(unsigned int n), 函数功能为:判定n是否...
if (IsPrime(j)==1&&IsPrime(2*j-1)==1)printf ("%d ",j);} } int IsPrime( int n){ int i;for (i=2;i<n;i++){ if( (n%i)==0 )return (0);} return (1);} \/*int IsMPrime( int m){ int p;if(IsPrime(2*p-1)==1 && IsPrime(p)==1)return (1);else ret...
定义函数int isPrime(int n),判断n是否为素数。如果n是素数,函数返回1...
include<stdio.h>int isPrime(int n) { int i,b; for ( i=2,b=1;i<=n\/2;i++ ) if ( n%i==0 ) { b=0; break; } return b;}void main() { int i; for ( i=6;i<=50;i++ ) if ( isPrime(i) ) printf("%d ",i); printf("\\n");} ...
C语言:编写函数int is_prime(int m)判断m是否为素数,若是则返回1,否则...
} return 1;}int main(){ int i,m=0,a[100]; for(i=0; i<=100; i++) if(IsPrime(i)) a[m++]=i; for(i=1;i<m;i++) if(a[i]-a[i-1]==2) printf("%d %d\\n",a[i-1],a[i])
c语言中int isPrime(int n)是什么意思
1、isPrime 是自定义的一个函数,传入一个整数n,判断是否为素数。若是返回1,否则返回0。2、例程及实现:include "stdio.h"int isprime(int a) \/\/判断素数的函数{ int j; for(j=2;j
c语言写判断素数?
以下是用 C 语言编写的一个简单的程序,用于判断一个数是否为素数:c include <stdio.h> \/\/ 判断素数函数 int isPrime(int num) { \/\/ 如果小于等于 1,则不是素数 if (num <= 1) { return 0;} \/\/ 循环从 2 到 num 的平方根 for (int i = 2; i <= num; i++) { \/\/ 如果...
用C语言编写一个程序,设计一个判断素数的函数
h>int IsPrime(int n) \/\/ 判断是否为素数{ if (n <= 1) return 0; if (n % 2 == 0) return n == 2; \/\/ 如果是偶数,只要不是2,其他都是非素数 for (int i = 3; ; i += 2) { if (i > n\/i) break; \/\/ 等价于 i*i > n, 不用开方 ...
\/*1、 编写函数 int IsPrime(unsigned int n), 函数功能为:判定n是否...
IsMPrime函数写错了。应该是 { int p;p=(pow(2,m)-1);\/\/这一句写错了 if(IsPrime(m) && IsPrime(p))return (1);else return (0);}
编写函数isprime( ),用来判断一个整数a是否为素数.再编写main函数
int isprime(int n){ int i;for(i=2;i<=sqrt(n);i++){ if(n%i==0)return 0;} return 1;} 解释:我把你的这个定义函数编排好看一点,问题就很明显了:出for循环后,经过这句 return 1;后,不管前面返回什么,最后函数返回的都是1,这就导致了判断的所有数都是素数。因该把这句 ...
用c语言判断一个整数是否是素数
include <stdio.h> int isprime(int n){ int i;if(n<2)return 0;for(i=2;i*i<=n;++i)if(n%i==0)return 0;return 1;} int main(){ int n;scanf("%d",&n);if(isprime(n))puts("yes");else puts("no");return 0;} ...
...设计一个函数用于判断一个数是否为素数,如果是素数返回1,否则返回...
int Func(int m)\/\/判断函数 { int n = 2;while (n <= m && (m%n))\/\/判断是否能被其他数整除 n++;if (m == n)return 1;else return 0;} int main(){ int M_num;\/\/定义变量 printf("请输入需要判断的数:\\n");\/\/文字提示 scanf("%i", &M_num);\/\/循环输入数组元素 int ...