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

供稿:hz-xin.com     日期:2025-01-13
键盘输入一个正整数,编程判断其是否为素数(即质数)

#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不是回文数。

键盘输入一个正整数,程式设计判断其是否为素数(即质数)
键盘输入一个正整数,程式设计判断其是否为素数(即质数)#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)...

C语言程序设计 输入一个正整数,判断该数是否为平方数,是输出Y ,否则输...
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");} ...

C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个...
int main(){ int a, b, i, t;int k = 0, sum = 0;scanf("%d", &a); \/\/输入整数a t = a;if(a \/ 10 == 0){ k = 1;sum = a;printf("%d\\n", k);printf("%d\\n", sum);} else { while(a \/ 10 != 0){ a = a \/ 10; \/\/每除10,就有一位 k++;} printf...

C++程序设计:输入一个正整数求出它是几位数;输出原数和位数
假设输入数是a i = a%10 j = a\/10 如果j等于0说明已经找到最高位,则结束循环 如果j不等于0,则说明找到当前最后一位i,继续循环 j不等于0的次数就是位数啊

C语言程序设计:输入一个正整数统计其位数并逆序后输出数据位数和逆序...
0;int j = 0;scanf("%d", &num);getchar();if(num < 0){printf("输入错误!\\n");return 0;}do{array[i] = num%10;num\/=10;i++;}while(num);printf("位数:\\n");printf("%d\\n", i);printf("逆序为:\\n");for(j = 0; j < i; j++) {printf("%d", array[j]...

c++程序设计:给一个不多于五位的正整数要求出它是几位数
{ char buffer[6];printf("请输入一个不大于五位的整数:\\n");scanf("%s",buffer);printf("位数是:%d\\n",strlen(buffer));for(int i=0;i<strlen(buffer);i++)printf("第%d位是:%d\\n",i+1,buffer[i]-48);printf("逆序显示为:\\n");for(i=strlen(buffer)-1;i>=0;i--)printf...

猜数字游戏程序设计: 让电脑产生一个100以内的正整数,在8次内猜中该...
int n;for (int i=1;i<9;i++){ cin>>n;if(n=m){ if(i<5) cout<<"你很聪明"<<endl;} else if(n<m){ cout<<"小一些"<<endl;} else { cout<<"大一些"<<endl;} if(i=8) cout<<"你很笨"<<endl;}

java语言程式设计 输入一个正整数N,输出表达式1+1\/2+1\/3+.+1\/N的值
java语言程式设计 输入一个正整数N,输出表达式1+1\/2+1\/3+...+1\/N的值 package test;import java.util.Scanner;public class Express { public static void main(String[] args) { System.out.println("请输入n的值"); Scanner scan=new Scanner(System.in); int n=scan.nextIn...

用C++程序设计编制“求一个正整数的所有约数”
使用`cin>>num;`读取用户输入的整数。然后,通过条件判断`if (!(num>=0))`确保输入的数为正整数。若输入错误,程序输出"输入有误,请重新输入",并等待用户重新输入。如果输入有效,则继续执行循环。在循环体内,`cout<<i<<endl;`打印当前的`i`值,表示一个约数。循环条件为`i<=num`,确保`i...

【急】判断一个数是否为素数的流程图
【急】判断一个数是否为素数的流程图 以下为程式码 S1 输入x S2 y=2 S3 判断y是否整除x,如为真跳至S6,否则 跳至S4 S4 y=y+1 S5 判断y是否大于等于x,如为真跳至S7,否则 重复S3 S6 输出X为合数 跳至S8 S7 输出X为质数 S8 结束 画一个判断素数的流程图 for i=3 ...