键盘输入一个正整数,程式设计判断其是否为素数(即质数)

作者&投稿:偶高 (若有异议请与网页底部的电邮联系)
键盘输入一个正整数,编程判断其是否为素数(即质数)~

#include
int main()
{
int n1,nm,i,j,flag,count=0;
do{
printf("Input START and END=?");
scanf("%d%d",&n1,&nm); /*输入求素数的范围*/
}while(!(n1>0&&n1<nm)); /*输入正确的范围*/
printf("...........PRIME TABLE(%d--%d)............
",n1,nm);
if(n1==1||n1==2) /*处理素数2*/
{
printf("%4d",2);
n1=3;count++;
}
for(i=n1;i<=nm;i++) /*判定指定范围内的整数是否为素数*/
{
if(!(i%2))continue;
for(flag=1,j=3;flag&&j<i/2;j+=2)
/*判定能否被从3到整数的一半中的某一数所整除*/
if(!(i%j))flag=0; /*若能整除则不是素数*/
if(flag) printf(++count%15?"%4d":"%4d
",i);
}
}

将:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在这个for循环前令g=0。
因为输入的不止一个数,开头的初始化g=0,在第一个数的时候就可能已经被改了。后面的数不重新初始化g=0,就不能保证对了。
判断一个正整数n是不是素数的思路:
思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。思路2):另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ √m 之间的每一个整数去除就可以了。
如果 m 不能被 2 ~ √m 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 √m,另一个大于或等于 √m。
例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。
正确代码如下:
#include/*sqrt*/
#include/*scanf,printf,system*/
int isPrime(int n)//判断n是否为素数,如果是则返回1,否则返回0。
{
if(n<=1)return 0;//小于等于1直接退出。
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//从2到算术平方根遍历。
if(!(n%i)) return 0;//存在约数,不是素数,返回0。
return 1;//不存在约数,返回1,表示为素数。
}
main ()
{
int num;
scanf ("%d", &num);
if ( isPrime( num) )//num是素数。
printf ("%d is a prime",num);
else
printf ("%d isn't a prime",num);//num不是素数。
system("PAUSE");//暂停界面。
return 0;
}

扩展资料:
输入一个正整数或0,判断是否为质数:
#include "stdio.h"
int main()
{
while(1)
{
int n,flag,i;
printf("请输入一个数:");
scanf("%d",&n);
flag = n/2+1;
if(n==0||n==1)
printf("%d既不是质数也不是合数
",n);
else if(n==2)
printf("%d是质数
",n);
else
{
for(i=2;i<=flag;i++)
{
if((n%i)==0)
{
printf("%d不是质数,是合数
",n);
break;
}
if(i==flag&&(n%i)!=0)
printf("%d是质数
",n);
}
}
}
}

键盘输入一个正整数,程式设计判断其是否为素数(即质数)
键盘输入一个正整数,程式设计判断其是否为素数(即质数)#include<stdio.h>
intmain()
{
intn1,nm,i,j,flag,count=0;
do{
printf("InputSTARTandEND=?");
scanf("%d%d",&n1,&nm);/*输入求素数的范围*/
}while(!(n1>0&&n1<nm));/*输入正确的范围*/
printf("...........PRIMETABLE(%d--%d)............\n",n1,nm);
if(n1==1||n1==2)/*处理素数2*/
{
printf("%4d",2);
n1=3;count++;
}
for(i=n1;i<=nm;i++)/*判定指定范围内的整数是否为素数*/
{
if(!(i%2))continue;
for(flag=1,j=3;flag&&j<i/2;j+=2)
/*判定能否被从3到整数的一半中的某一数所整除*/
if(!(i%j))flag=0;/*若能整除则不是素数*/
if(flag)printf(++count%15?"%4d":"%4d\n",i);
}
}
汇编程式设计:、从键盘输入一个正整数,判断其是否素数。#include<stdio.h>
main()
{
inta=0;inti;
printf("从键盘输入一个正整数:");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)
{
printf("不是素数");
break;
}
if(i==a)printf("是素数");
}
由键盘输入一个正整数,判断它是否为质数#include"stdio.h"
intFun(inti)
{
if(i==1)
returnfalse;
else
{
for(intj=2;j<i;j++)
if(i%j==0)
return0;
return1;
}
}
voidmain()
{
intn;
printf("请输入你要判断的数:\n");
scanf("%d",&n);
if(Fun(n)==1)
printf("该数是质数!\n");
else
printf("该数不是质数!\n");
}
c#从键盘输入一个正整数,判断该数是不是素数(质数)intisPrime(intnum){
if(num<=1)return-1;
elseif(num==2)return1;
else{
for(i=2;i<=Math.Sqrt(num);i++){
if(num%i==0)return0;
}
return1;
}
}
输入一个正整数n,判断n是否是素数。#include<stdio.h>
intmain()
{
inti,j,n;
n=scanf("%d",&i);
while(n!=0)只要不输入0,就一直回圈
{
for(j=2;j<=n/2;j++)
{
if(n%j==0)break;
if(j>n/2)printf("%d是素数",n);
elseprintf("%d不是素数",n);
n=scanf("%d",&i);
}
这是c语言的,估计你才开始学程式设计吧?
C++从键盘输入一个正整数,判断是否为回文数输入以下程式即可判断:
intlen=strlen(s)-1,i;
booljudge=true;
for(i=0;i<len/2;i++)
if(s[i]!=s[len-i])
{
judge=false;
break;
}
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindromenumber)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
pascal题目:输入一个正整数N,判断N是否为素数用一个子程式
具体程式码我给你
没测试呢
programabc;
vari,k,m,n:longint;
functionisprime(n:longint):boolean;
begin
function:=true;
fori:=2tosqrt(n)do
ifnmodi=0then
begin
function:=false;
exit;
end;
end;
begin
readln(n);
ifisprime(n)thenwriteln('yes')elsewriteln('no');
end.
从键盘输入任意正整数,判断是否素数的c语言#include"math.h"
main()
{
intm,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)printf("%disaprimenumber\n",m);
elseprintf("%disnotaprimenumber\n",m);
}
C++从键盘输入一个正整数,如何判断是否为回文数?输入以下程式即可判断:
intlen=strlen(s)-1,i;
booljudge=true;
for(i=0;iif(s[i]!=s[len-i])
{
judge=false;
break;
}
1、“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindromenumber)。
2、设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。


python3 从键盘输入任意一个正整数,如何以编程实现以相反的顺序输出改数...
以下代码,供参考:num=input("请输入一个正整数:")for n in num[::-1]: print(n,end='')

从键盘输入一个一到两位正整数x,判断x是 否是同构数
10 : 100)) == x) ? "是同构数" : "不是同构数" << endl; return 0; } else { return -1; }}#include <iostream>using namespace std;int main (void) { int y, m; cout << "Input year and month:"; cin >> y >> m; switch (m) { case...

c++编程)键盘输入一个高精度的正整数M,去掉其中任意S个数字后使剩下的...
算法描述:从最高位往最低位,如果当前位数字比后一位数字大,就把该位数字删除,否则当前位后移一位。(不知0是否可以作为最高位数)程序:略

c语言,从键盘上输入一个正整数,按二进制输出该数,同时分别对第五位...
用算术与和或来做置一和清零,第6位置一就用|32或者&0x00000020(0010,0000),第7位清零一个道理,&64 &ffffffbf。取反用异或实现,对0x00000010进行异或操作,如果原来为0,那么现在为1,如果原来为1,那么现在为0 抱歉,刚才写错了。。。

从键盘上输入一个任意正整数并存入到一个整形变量中,然后将其每一位数 ...
void main(){ int Num = 0;printf("请输入数字:");scanf("%d",&Num);int Array[100];int n_Num = 0;\/\/记录整数的位数 int n_mod = 0;\/\/模值 while(Num){ Array[n_Num] = Num%10;Num = Num\/10;n_Num++;} printf("输出结果:\\n");for (int i = n_Num - 1 ; i >...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
思路:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。参考代码:include <stdio.h>int main(){ int n,num=0;scanf("%d",&n);while(n){num++;n\/=10;}printf("...

编写程序,从键盘上输入一个100000以内的正整数,求该数各个数位上的数 ...
include<stdio.h> int main(){ int i,t;char s[100];gets(s);t=0;for(i=0;s[i]!='\\0';i++)t=t+s[i]-'0';printf("%d",t);}

求解~c语言,从键盘输入一个3位数的正整数,要求先后输出该数的百位数字...
include<stdio.h> int main(){ int num;scanf("%d",&num);printf("百位数字:%d\\n",num \/ 100);printf("个位数字:%d\\n",num % 10);return 0;} 这已经是较完整的代码了!前提是你的按你自己设定的要求输入数值!!“\/”和“%”为除法运算和取模(余)运算。这题是很简单的!eg:in...

在C++中“从键盘上输入一个任意位数的正整数,判断它是几位数,并逆序...
include <iostream> using namespace std;void main(){ int num,temp;cout<<"Please input a number"<<endl;cin>>num;while(num>0){ temp=num%10;cout<<temp;num=num\/10;} cout<<endl;} 目前最简单的,也可以用字符形式

题目内容: 从键盘输入一个int型的正整数n(已知:0<n<10000),编写程序判 ...
示例1不正确 include"stdio.h"int po(int i){ int j;j=1;while (i){ j*=10;i--;} if (j==1) j--;return j;} int nu(int i){ int j;j=0;while (i){ i\/=10;j++;} return j-1;} int main(){ int n;printf("Please enter the number:\\n");scanf("%d",&n);if...

颍州区15313257866: C语言编写程序从键盘输入一个整数,判断其正负,正数输出其相反数,负数输出零? -
翠响唯新: #include <stdio.h> int main() { int x;scanf("%d",&x);printf("%d\n",x>0?-x:0);return 0; }

颍州区15313257866: 2、(1)设计一个程序,从键盘上输入一个正整数,判断其是否为素数.程序运行界面如下(参考P115,例5 - 16)
翠响唯新: 做一个while循环 里边写判断素数的代码就可以了吧 很简单的啊

颍州区15313257866: c语言设计程序:用函数实现:从键盘输入一个整数,判断其是否是素数;如是,则打印YES,否则打印NO. -
翠响唯新: #include"stdio.h"main(){int a = 0; int i;printf("请输入整数:");scanf("%d",&a);for(i = 2;i<a;i++)if(a%i==0){printf("NO");break;}if(i==a) printf("YES");}

颍州区15313257866: 由键盘输入一正整数,判断其是否为素数.C++ 循环的嵌套 -
翠响唯新: cout<<"如果要结束程序,请输入0"<<endl;break;这个数是素数"}}if (temp==2)cout<if(number==0)break;do{int temp=0;<cin>>number;=number;if(number<2){cout<<"输入不正确,请输入不小于2的数字"<<endl;continue;if(temp==3){cout<"}for(int i=1;i<i++){if(number%i==0)temp++;<"这个数不是素数"<<endl;<&ltint main() {int number

颍州区15313257866: 问:设计一个算法,任意输入一个正整数,判断这个数是否为素数,并画出程序框图. -
翠响唯新: #include void main() {int i,r,m;printf("输入一个数:");scanf("%d",&m);r=sqrt(m); //判别m是否为素数,用2~根号m之间的每一个整数去除就可以for(i=2;i<=r;i++){if(m%i==0){break;}}if(i>r){printf("%d是素数\n",m);}else{printf("%d不是素数\n",m);}return 0; } 流程图没Visio,自己画吧,反正就一个for和一个是否素数的分支

颍州区15313257866: 求一道程序设计题的代码编写:输入一个正整数,判断该正整数是否为素数 -
翠响唯新: C编写的吧?#include "stdafx.h" #include "math.h" int main() {int n,i;printf("请输入一个数");scanf("%d",&n);if((n==2)) printf("%d是素数",n);else{for(i=2;i<=sqrt(n);i++){if(n%i==0){printf("%d不是素数",n);break;} } if(i>=sqrt(n) printf("%d是素数",n); }return 0; }

颍州区15313257866: 由键盘任意输入一个正整数,要求:判断并显示它是几位数且计算并显示该数的各位数字之和.用c语言编程 谢谢 -
翠响唯新: #include<stdio.h> #include<string.h> void main() {int i,j,sum=0;char a[100];printf("ÇëÊäÈëÕûÊý£º\n");gets(a);for(i=0,j=0;a[i]!='\0';i++){j++;sum+=a[i]-'0';}printf("%sÊÇ%dλÊý,¸ÃÊýµÄ¸÷λÊý*ÖÖ®ºÍ%d\n",a,j,sum); }

颍州区15313257866: 判断键盘上输入的"任一一个正整数"是否为同构数的c语言编程怎么编? -
翠响唯新: #include<stdio.h> #include<math.h> int shu(long unsigned num) //判断一个给定的数num是不是x数 //是返回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("请输入任意...

颍州区15313257866: VF程序题:从键盘输入一个正整数,判断其所含5的个数. -
翠响唯新: 都有长度限制,用输入字符串的方法 accept "请输入一个正整数X:" TO x s=0 n=len(x) for i=1 to n k=substr(x,i,1) if k="5" s=s+1 endif endfor?"X中5的个数为:",s

颍州区15313257866: C语言程序设计 输入一个正整数,判断该数是否为平方数,是输出Y ,否则输出N -
翠响唯新: /*输入一个正整数,判断该数是否为平方数,是输出Y ,否则输出N......................by Mr.Kong*/#include<stdio.h> int fun(int a) /*该函数是判断输入的数,是否是平方数*/ { int i; for(i=1;i<(a/2);i++) { if(i*i==a) return 1; } return 0; } main() { int a,b; printf("请输入一个正整数:"); scanf("%d",&a); b=fun(a); if(b==1) printf("Y"); else printf("N"); }

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