[Programming] Nhập vào một số nguyên và in ra các chử số nguyên tố. |
15/04/2009 06:21:54 (+0700) | #1 | 177174 |
|
fanmaytinh00
Member
|
0 |
|
|
Joined: 29/11/2007 03:39:07
Messages: 43
Offline
|
|
Đề bài: nhập vào một số nguyên a và in ra những chữ số nguyên tố. Ví dụ nhập 123456 in ra la 1,2,3,5 là số nguyên tố.
Em làm như bên dưới và khi in ra không như ý muốn.
Code:
#include<stdio.h>
#include<conio.h>
#include<math.h>
int nguyento(int n)
{
int i;
for (i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
void main()
{
int b,a,i;
printf("\n Nhap a=");
scanf("%d",&a);
while (a!=0)
{
b=a%10;
a=a/10;
if(nguyento(b))
printf("%d la so nguyen to",b);//neu nhap 123456 in ra 1,2,3,5 la so nguyen to thi cau lenh in la the nao?
}
}
|
|
|
|
|
[Question] Re: In liên tục các chữ số ra mang hình. |
15/04/2009 08:01:33 (+0700) | #2 | 177190 |
|
Z0rr0
Q+WRtaW5pc3RyYXRvc+g
|
Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
|
|
- Chỉnh lại tiêu đề cho chính xác hơn với câu hỏi
- Soạn lại câu hỏi bỏ vào tag Code
- Xem lại mã lệnh đoạn while (...), phần printf vì viết code thế nào nó in ra thế đó. Suy nghĩ xem phần nào sẽ lặp lại, phần nào chỉ cần in 1 lần? |
|
Hibernating |
|
|
|
[Question] Re: In liên tục các chữ số ra mang hình. |
15/04/2009 08:08:16 (+0700) | #3 | 177193 |
choc_
Member
|
0 |
|
|
Joined: 27/01/2009 06:46:01
Messages: 122
Offline
|
|
heheh chương trình này mà viết dạng này thì nếu mà mình nhập vào một số nguyên bự tổ chảng thì nó chạy bao giờ xong ta? bạn fanmaytinh00 thử tìm hiểu về primality test. |
|
|
|
|
[Question] Re: In liên tục các chữ số ra mang hình. |
15/04/2009 18:34:10 (+0700) | #4 | 177238 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
choc_ wrote:
heheh chương trình này mà viết dạng này thì nếu mà mình nhập vào một số nguyên bự tổ chảng thì nó chạy bao giờ xong ta? bạn fanmaytinh00 thử tìm hiểu về primality test.
Hehe, đọc kĩ lại đề bài bạn choc_ ơi, cái gì mà primality test ở đây. Bài này mà phải dùng đến tính toán thì mới là lạ. |
|
Mind your thought. |
|
|
|
[Question] Re: In liên tục các chữ số ra mang hình. |
16/04/2009 02:15:33 (+0700) | #5 | 177304 |
choc_
Member
|
0 |
|
|
Joined: 27/01/2009 06:46:01
Messages: 122
Offline
|
|
@starghost: dạo này mình bị vấn đề gì đó nhỉ, toàn đọc sai . cảm ơn bạn starghost. |
|
|
|
|
[Question] Re: Nhập vào một số nguyên và in ra các chử số nguyên tố. |
17/04/2009 11:20:04 (+0700) | #6 | 177515 |
tinhhoasimtim
Member
|
0 |
|
|
Joined: 25/06/2008 10:34:11
Messages: 23
Offline
|
|
theo mình thì chương trình này chỉ kiểm tra các số từ 0 đến 9
nên k cần thiết phải dùng hàm kiểm tra số nguyên tố
khi cần in ra các số nguyên tố tính từ hàng đơn vị trở lên có thể dùng code như sau
Code:
#include<stdio.h>
void main(){
int a,b,c=0;
printf("Nhap a=");
scanf("%d",&a);
while (a!=0){
b=a%10;
a=a/10;
if(b==1||b==2||b==3||b==5||b==7){
if(c)printf(", "); else c=1;
printf("%d",b);
}
}
if(c)printf(" la cac so nguyen to");
//else printf("khong co so nao la so nguyen to");
}
còn nếu muốn in theo đúng thứ tự từ trái sang phải thì có thể cải tiến, convert số sang xâu, rồi duyệt từng kí tự trong xâu.(cái này để bạn tự viết, nó cũng đơn giản thôi) |
|
|
|
|
[Question] Re: Nhập vào một số nguyên và in ra các chử số nguyên tố. |
17/04/2009 20:59:39 (+0700) | #7 | 177539 |
|
xikenet
Member
|
0 |
|
|
Joined: 13/05/2005 15:46:16
Messages: 127
Location: Hell which was made in Heaven
Offline
|
|
Đây là đoạn xét số nguyên tố.
Code:
int isPrime(int number)
{
int count;
double s;
/* Every even number is not prime */
if (number % 2 == 0) return FALSE;
/* check every odd number up to the square root of the number */
s = sqrt(number);
for (count=3; count<=s; count+=2)
{
if (number % count == 0) return FALSE;
}
return TRUE;
}
|
|
|
|
|
[Question] Re: Nhập vào một số nguyên và in ra các chử số nguyên tố. |
06/05/2009 01:49:10 (+0700) | #8 | 179620 |
toend2008
Member
|
0 |
|
|
Joined: 11/04/2009 03:01:03
Messages: 17
Offline
|
|
neu nhap 123456 in ra 1,2,3,5 la so nguyen to mình ko thể làm được vì ngay lúc đầu mình đã xét hàng đơn vị là b và cho xuất b rồi nên không thể in ra hàng trăm ngàn như vd của cậu được. #include<stdio.h>
Code:
#include<conio.h>
#include<math.h>
int nguyento(int n)
{
int i;
for (i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
void main()
{
int b,a,i;
printf("\n Nhap a=");
scanf("%d",&a);
while (a!=0)
{
b=a%10;
a=a/10;
if(nguyento(b))
printf("%d ",b);//neu nhap 123456 in ra 1,2,3,5 la so nguyen to thi cau lenh in la the nao?
}
printf("la so nguyen to");
getch();
}
|
|
|
|
|
[Question] Re: Nhập vào một số nguyên và in ra các chử số nguyên tố. |
06/05/2009 01:52:44 (+0700) | #9 | 179621 |
toend2008
Member
|
0 |
|
|
Joined: 11/04/2009 03:01:03
Messages: 17
Offline
|
|
Chỉ có đường nhập ngược 654321 thì nó sẽ in ra là 1 2 3 5 là số nguyên tố.Hé Hé |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|